##// END OF EJS Templates
remember_version() only writes version if called in a Mercurial repository....
Thomas Arendsen Hein -
r425:719663b7 default
parent child Browse files
Show More
@@ -15,6 +15,7 b' import re'
15 import time
15 import time
16
16
17 unknown_version = 'unknown'
17 unknown_version = 'unknown'
18 remembered_version = False
18
19
19 def get_version():
20 def get_version():
20 """Return version information if available."""
21 """Return version information if available."""
@@ -34,29 +35,31 b' def write_version(version):'
34
35
35 def remember_version():
36 def remember_version():
36 """Store version information."""
37 """Store version information."""
37 f = os.popen("hg identify 2>/dev/null") # use real hg installation
38 global remembered_version
38 ident = f.read()[:-1]
39 if os.access(".hg", os.F_OK):
39 if not f.close() and ident:
40 f = os.popen("hg identify 2>/dev/null") # use real hg installation
40 ids = ident.split(' ', 1)
41 ident = f.read()[:-1]
41 version = ids.pop(0)
42 if not f.close() and ident:
42 if version[-1] == '+':
43 ids = ident.split(' ', 1)
43 version = version[:-1]
44 version = ids.pop(0)
44 modified = True
45 if version[-1] == '+':
45 else:
46 version = version[:-1]
46 modified = False
47 modified = True
47 if version.isalnum() and ids:
48 else:
48 for tag in ids[0].split('/'):
49 modified = False
49 # is a tag is suitable as a version number?
50 if version.isalnum() and ids:
50 if re.match(r'^(\d+\.)+[\w.-]+$', tag):
51 for tag in ids[0].split('/'):
51 version = tag
52 # is a tag is suitable as a version number?
52 break
53 if re.match(r'^(\d+\.)+[\w.-]+$', tag):
53 if modified:
54 version = tag
54 version += time.strftime('+%Y%m%d')
55 break
55 else:
56 if modified:
56 version = unknown_version
57 version += time.strftime('+%Y%m%d')
57 write_version(version)
58 remembered_version = True
59 write_version(version)
58
60
59 def forget_version():
61 def forget_version():
60 """Remove version information."""
62 """Remove version information."""
61 write_version(unknown_version)
63 if remembered_version:
64 write_version(unknown_version)
62
65
General Comments 0
You need to be logged in to leave comments. Login now