X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=bup.git;a=blobdiff_plain;f=lib%2Fcmd%2Fversion-cmd.py;h=dac15e856cd728e53a0ff6f823500a829bf55350;hp=f158c91c86f5458fc99111cd900a5cce93172dc7;hb=073f1e521cdfc39d302eaeac49745b1f1a25a1c0;hpb=dd5351bd3ca731fa5caada713ce522af84edef58 diff --git a/lib/cmd/version-cmd.py b/lib/cmd/version-cmd.py index f158c91..dac15e8 100755 --- a/lib/cmd/version-cmd.py +++ b/lib/cmd/version-cmd.py @@ -20,56 +20,30 @@ import os.path, re, sys sys.path[:0] = [os.path.dirname(os.path.realpath(__file__)) + '/..'] from bup import compat, options, version +from bup.io import byte_stream version_rx = re.compile(r'^[0-9]+\.[0-9]+(\.[0-9]+)?(-[0-9]+-g[0-9abcdef]+)?$') optspec = """ -bup version [--date|--commit|--tag] +bup version [--date|--commit] -- date display the date this version of bup was created commit display the git commit id of this version of bup -tag display the tag name of this version. If no tag is available, display the commit id """ o = options.Options(optspec) opt, flags, extra = o.parse(compat.argv[1:]) -total = (opt.date or 0) + (opt.commit or 0) + (opt.tag or 0) +total = (opt.date or 0) + (opt.commit or 0) if total > 1: o.fatal('at most one option expected') - -def version_date(): - """Format bup's version date string for output.""" - return version.DATE.split(' ')[0] - - -def version_commit(): - """Get the commit hash of bup's current version.""" - return version.COMMIT - - -def version_tag(): - """Format bup's version tag (the official version number). - - When generated from a commit other than one pointed to with a tag, the - returned string will be "unknown-" followed by the first seven positions of - the commit hash. - """ - names = version.NAMES.strip() - assert(names[0] == '(') - assert(names[-1] == ')') - names = names[1:-1] - l = [n.strip() for n in names.split(',')] - for n in l: - if n.startswith('tag: ') and version_rx.match(n[5:]): - return n[5:] - return 'unknown-%s' % version.COMMIT[:7] - +sys.stdout.flush() +out = byte_stream(sys.stdout) if opt.date: - print(version_date()) + out.write(version.date.split(' ')[0] + b'\n') elif opt.commit: - print(version_commit()) + out.write(version.commit + b'\n') else: - print(version_tag()) + out.write(version.version + b'\n')