summaryrefslogtreecommitdiff
path: root/scripts/build_version.py
diff options
context:
space:
mode:
authorBryan O'Sullivan <bos@lindenlab.com>2008-06-02 21:14:31 +0000
committerBryan O'Sullivan <bos@lindenlab.com>2008-06-02 21:14:31 +0000
commit9db949eec327df4173fde3de934a87bedb0db13c (patch)
treeaeffa0f0e68b1d2ceb74d460cbbd22652c9cd159 /scripts/build_version.py
parent419e13d0acaabf5e1e02e9b64a07648bce822b2f (diff)
svn merge -r88066:88786 svn+ssh://svn.lindenlab.com/svn/linden/branches/cmake-9-merge
dataserver-is-deprecated for-fucks-sake-whats-with-these-commit-markers
Diffstat (limited to 'scripts/build_version.py')
-rwxr-xr-xscripts/build_version.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/scripts/build_version.py b/scripts/build_version.py
new file mode 100755
index 0000000000..4bef290b7d
--- /dev/null
+++ b/scripts/build_version.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+#
+# Print the build information embedded in a header file.
+#
+# Expects to be invoked from the command line with a file name and a
+# list of directories to search. The file name will be one of the
+# following:
+#
+# llversionserver.h
+# llversionviewer.h
+#
+# The directory list that follows will include indra/llcommon, where
+# these files live.
+
+import errno, os, re
+
+def get_version(filename):
+ fp = open(filename)
+ data = fp.read()
+ fp.close()
+
+ vals = {}
+ m = re.search('const S32 LL_VERSION_MAJOR = (\d+);', data)
+ vals['major'] = m.group(1)
+ m = re.search('const S32 LL_VERSION_MINOR = (\d+);', data)
+ vals['minor'] = m.group(1)
+ m = re.search('const S32 LL_VERSION_PATCH = (\d+);', data)
+ vals['patch'] = m.group(1)
+ m = re.search('const S32 LL_VERSION_BUILD = (\d+);', data)
+ vals['build'] = m.group(1)
+
+ return "%(major)s.%(minor)s.%(patch)s.%(build)s" % vals
+
+if __name__ == '__main__':
+ import sys
+
+ try:
+ for path in sys.argv[2:]:
+ name = os.path.join(path, sys.argv[1])
+ try:
+ print get_version(name)
+ break
+ except OSError, err:
+ if err.errno != errno.ENOENT:
+ raise
+ else:
+ print >> sys.stderr, 'File not found:', sys.argv[1]
+ sys.exit(1)
+ except AttributeError:
+ print >> sys.stderr, 'Error: malformatted file: ', name
+ sys.exit(1)
+ except IndexError:
+ print >> sys.stderr, ('Usage: %s llversion[...].h [directories]' %
+ sys.argv[0])