3 # https://sourceware.org/bugzilla/show_bug.cgi?id=26034
4 export "BUP_ARGV_0"="$0"
7 export "BUP_ARGV_${arg_i}"="$arg"
11 # Here to end of preamble replaced during install
12 bup_python="$(dirname "$0")/bup-python" || exit $?
13 exec "$bup_python" "$0"
17 from __future__ import absolute_import, print_function
20 from bup import compat, options, version
22 version_rx = re.compile(r'^[0-9]+\.[0-9]+(\.[0-9]+)?(-[0-9]+-g[0-9abcdef]+)?$')
25 bup version [--date|--commit|--tag]
27 date display the date this version of bup was created
28 commit display the git commit id of this version of bup
29 tag display the tag name of this version. If no tag is available, display the commit id
31 o = options.Options(optspec)
32 opt, flags, extra = o.parse(compat.argv[1:])
35 total = (opt.date or 0) + (opt.commit or 0) + (opt.tag or 0)
37 o.fatal('at most one option expected')
41 """Format bup's version date string for output."""
42 return version.DATE.split(' ')[0]
46 """Get the commit hash of bup's current version."""
51 """Format bup's version tag (the official version number).
53 When generated from a commit other than one pointed to with a tag, the
54 returned string will be "unknown-" followed by the first seven positions of
57 names = version.NAMES.strip()
58 assert(names[0] == '(')
59 assert(names[-1] == ')')
61 l = [n.strip() for n in names.split(',')]
63 if n.startswith('tag: ') and version_rx.match(n[5:]):
65 return 'unknown-%s' % version.COMMIT[:7]
71 print(version_commit())