hgkw/version.py
changeset 193 7a775a8f6fb9
parent 124 99dc49c5bcfb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hgkw/version.py	Wed Jul 18 22:45:50 2007 +0200
@@ -0,0 +1,46 @@
+# $Id$
+
+'''version.py - hgkw version.
+Code stolen from Mercurial, and simplified for my needs.
+'''
+
+import os, time
+
+unknown_version = 'unknown'
+
+def getversion(doreload=False):
+    try:
+        import hgkw.__version__
+        if doreload:
+            reload(hgkw.__version__)
+        version = hgkw.__version__.version
+    except ImportError:
+        version = unknown_version
+    return version
+
+def rememberversion(version=None):
+    if not version and os.path.isdir('.hg'):
+        # get version from Mercurial
+        p = os.popen('hg --quiet identify 2> %s' % os.devnull)
+        ident = p.read()[:-1]
+        if not p.close() and ident:
+            if ident[-1] != '+':
+                version = ident
+            else:
+                version = ident[:-1]
+                version += time.strftime('+%Y%m%d')
+    if version and version != getversion(): # write version
+        directory = os.path.dirname(__file__)
+        for suff in ['py', 'pyc', 'pyo']:
+            try:
+                os.unlink(os.path.join(directory, '__version__.%s' % suff))
+            except OSError:
+                pass
+        f = open(os.path.join(directory, '__version__.py'), 'w')
+        try:
+            f.write('# this file is auto-generated\n')
+            f.write('version = %r\n' % version)
+        finally:
+            f.close()
+        # reload file
+        getversion(doreload=True)