mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-24 23:26:43 +00:00
39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
#! /usr/bin/python
|
|
|
|
"""Determine the version number of the current tree.
|
|
|
|
This should be run after 'setup.py darcsver'. It will emit a single line of text
|
|
to stdout, either of the form '0.2.0' if this is a release tree (i.e. no patches
|
|
have been added since the last release tag), or '0.2.0-34' (if 34 patches have
|
|
been added since the last release tag). If the tree does not have a well-formed
|
|
version number, this will emit 'unknown'.
|
|
|
|
The version string thus calculated should exactly match the version string
|
|
determined by setup.py (when it creates eggs and source tarballs) and also
|
|
the version available in the code image when you do:
|
|
|
|
from allmydata import __version__
|
|
|
|
"""
|
|
|
|
import os.path, re
|
|
|
|
def get_version():
|
|
VERSIONFILE = "src/allmydata/_version.py"
|
|
verstr = "unknown"
|
|
if os.path.exists(VERSIONFILE):
|
|
VSRE = re.compile("^verstr = ['\"]([^'\"]*)['\"]", re.M)
|
|
verstrline = open(VERSIONFILE, "rt").read()
|
|
mo = VSRE.search(verstrline)
|
|
if mo:
|
|
verstr = mo.group(1)
|
|
else:
|
|
raise RuntimeError("if version.py exists, it must be well-formed")
|
|
|
|
return verstr
|
|
|
|
if __name__ == '__main__':
|
|
verstr = get_version()
|
|
print verstr
|
|
|