diff --git a/configure.ac b/configure.ac index 97ce167..f2e6445 100644 --- a/configure.ac +++ b/configure.ac @@ -38,6 +38,10 @@ AC_SUBST(PYTHONLIBDIR) AS_AC_EXPAND(PLUGINSDIR, "\${libdir}/morituri/plugins") AC_MSG_NOTICE(Setting plugins directory to $PLUGINSDIR) +dnl get git revision for installed.py.in +AC_SUBST(REVISION, `python -c 'from morituri.configure import configure; print configure.revision'`) +AC_MSG_NOTICE(Setting revision to $REVISION) + dnl check for epydoc AC_CHECK_PROG(EPYDOC, epydoc, yes, no) AM_CONDITIONAL(HAVE_EPYDOC, test "x$EPYDOC" = "xyes") diff --git a/morituri/common/common.py b/morituri/common/common.py index 0af7186..aa964e9 100644 --- a/morituri/common/common.py +++ b/morituri/common/common.py @@ -23,6 +23,7 @@ import os import os.path +import commands import math import subprocess @@ -331,3 +332,17 @@ class VersionGetter(object): raise return version + + +def getRevision(): + """ + Get a revision tag for the current git source tree. + + Appends -modified in case there are local modifications. + """ + describe = commands.getoutput('git describe') + + if commands.getoutput('git diff-index --name-only HEAD --'): + describe += '-modified' + + return describe diff --git a/morituri/configure/configure.py b/morituri/configure/configure.py index f55525a..6a38329 100644 --- a/morituri/configure/configure.py +++ b/morituri/configure/configure.py @@ -22,8 +22,6 @@ import os # where am I on the disk ? __thisdir = os.path.dirname(os.path.abspath(__file__)) -revision = "$Revision$" - if os.path.exists(os.path.join(__thisdir, 'uninstalled.py')): from morituri.configure import uninstalled config_dict = uninstalled.get() diff --git a/morituri/configure/installed.py.in b/morituri/configure/installed.py.in index c2c536a..c29a3f5 100644 --- a/morituri/configure/installed.py.in +++ b/morituri/configure/installed.py.in @@ -7,4 +7,5 @@ def get(): 'isinstalled': True, 'pluginsdir': '@PLUGINSDIR@', 'version': '@VERSION@', + 'revision', '@REVISION@', } diff --git a/morituri/configure/uninstalled.py.in b/morituri/configure/uninstalled.py.in index 7e9aea3..a8155f8 100644 --- a/morituri/configure/uninstalled.py.in +++ b/morituri/configure/uninstalled.py.in @@ -1,7 +1,9 @@ # -*- Mode: Python -*- # vi:si:et:sw=4:sts=4:ts=4 -import os +import os.path + +from morituri.common import common __thisdir = os.path.dirname(os.path.abspath(__file__)) @@ -13,4 +15,5 @@ def get(): 'pluginsdir': os.path.abspath(os.path.join( __thisdir, '..', '..', 'plugins')), 'version': '@VERSION@', + 'revision': common.getRevision(), }