#!/usr/bin/python import contextlib import glob import os import shutil import subprocess import sys import tempfile @contextlib.contextmanager def tmpdir(): t = tempfile.mkdtemp() try: yield t finally: shutil.rmtree(t) def join(*paths): p = os.path.join(*paths) return os.path.abspath(p) def tiny_p(cmd): # Darn python 2.6 doesn't have check_output (argggg) info("Running %s" % (cmd)) sp = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=None) (out, err) = sp.communicate() if sp.returncode not in [0]: raise RuntimeError("Failed running %s [rc=%s] (%s, %s)" % (cmd, sp.returncode, out, err)) return (out, err) def info(msg): print("INFO: %s" % (msg)) def warn(msg): print("WARNING: %s" % (msg)) def main(): with tmpdir() as td: info("Using %s as a temporary workspace" % (td)) (stdout, _stderr) = tiny_p(['bzr', 'revno']) revno = stdout.strip() cmd = [sys.executable, join(os.pardir, 'tools', 'read-version')] (stdout, _stderr) = tiny_p(cmd) version = stdout.strip() return 0 if __name__ == '__main__': sys.exit(main())