diff options
author | Rob Austein <sra@hactrn.net> | 2013-06-13 19:58:40 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2013-06-13 19:58:40 +0000 |
commit | e289fb70cbd45be002ccb2dcf501292efab838a8 (patch) | |
tree | 7e61586980e1c4c754416f1d93159e3af3b66891 /buildtools/make-version.py | |
parent | b77a1561cadbd1efed1b7544165d839288e50e67 (diff) |
Report problems rather than just silently writing "Unknown".
svn path=/trunk/; revision=5404
Diffstat (limited to 'buildtools/make-version.py')
-rw-r--r-- | buildtools/make-version.py | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/buildtools/make-version.py b/buildtools/make-version.py index 9f6eb39f..af513b5d 100644 --- a/buildtools/make-version.py +++ b/buildtools/make-version.py @@ -27,15 +27,24 @@ # # I did say this was a kludge. +# One could argue that we should be throwing a fatal error when we +# can't determine the version, rather than just issuing a warning and +# writing a version of "Unknown". Maybe later. + import subprocess +import sys + +unknown = "Unknown" try: v = subprocess.Popen(("svnversion", "-c"), stdout = subprocess.PIPE).communicate()[0] -except: - v = "Unknown" + err = None +except Exception, e: + v = unknown + err = e -if any(s in v for s in ("Unversioned", "Uncommitted", "Unknown")): - v = "Unknown" +if any(s in v for s in ("Unversioned", "Uncommitted", unknown)): + v = unknown else: v = "0." + v.strip().split(":")[-1].translate(None, "SMP") @@ -44,6 +53,15 @@ try: except: old = None +if err is not None and (old is None or old == unknown): + sys.stderr.write("Warning: No saved version and svnversion failed: %s\n" % err) + +if v == unknown: + if old is not None and old != unknown: + v = old + else: + sys.stderr.write("Warning: Could not determine software version\n") + if old is None or v != old: with open("VERSION", "w") as f: f.write(v + "\n") |