Setup standalone module install, version tracking kwmap-templates
authorChristian Ebert <blacktrash@gmx.net>
Thu, 08 Feb 2007 06:43:15 +0100
branchkwmap-templates
changeset 124 99dc49c5bcfb
parent 123 6cf933de685a
child 125 e09b070073b2
Setup standalone module install, version tracking
.hgignore
hgkw/version.py
setup.py
--- a/.hgignore	Wed Feb 07 15:50:57 2007 +0100
+++ b/.hgignore	Thu Feb 08 06:43:15 2007 +0100
@@ -1,7 +1,10 @@
 syntax: glob
 
 *.pyc
+*.pyo
 *~
 *.swp
 *.orig
 *.rej
+
+hgkw/__version__.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hgkw/version.py	Thu Feb 08 06:43:15 2007 +0100
@@ -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)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/setup.py	Thu Feb 08 06:43:15 2007 +0100
@@ -0,0 +1,19 @@
+#!/usr/bin/env python
+# $Id$
+
+from distutils.core import setup
+import hgkw.version
+
+# specify version, Mercurial version otherwise
+version = ''
+
+hgkw.version.rememberversion(version)
+
+setup(name='hgkw',
+        version=hgkw.version.getversion(),
+        description='Mercurial keyword extension (standalone)',
+        author='Christian Ebert',
+        author_email='blacktrash@gmx.net',
+        license='GNU GPL',
+        packages=['hgkw'],
+        )