From 0f66235bce301fc21cddf080a0b436d5cb748f4a Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sun, 11 Oct 2009 22:51:08 +0000 Subject: Add a xpak-helper.py script, so that shell code always calls python via a shebang. (trunk r14575) svn path=/main/branches/2.1.7/; revision=14576 --- bin/xpak-helper.py | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100755 bin/xpak-helper.py (limited to 'bin/xpak-helper.py') diff --git a/bin/xpak-helper.py b/bin/xpak-helper.py new file mode 100755 index 000000000..e6e8680e0 --- /dev/null +++ b/bin/xpak-helper.py @@ -0,0 +1,69 @@ +#!/usr/bin/python +# Copyright 2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +import optparse +import sys +import portage +from portage import os + +def command_recompose(args): + + usage = "usage: recompose \n" + + if len(args) != 2: + sys.stderr.write(usage) + sys.stderr.write("2 arguments are required, got %s\n" % len(args)) + return 1 + + binpkg_path, metadata_dir = args + + if not os.path.isfile(binpkg_path): + sys.stderr.write(usage) + sys.stderr.write("Argument 1 is not a regular file: '%s'\n" % \ + binpkg_path) + return 1 + + if not os.path.isdir(metadata_dir): + sys.stderr.write(usage) + sys.stderr.write("Argument 2 is not a directory: '%s'\n" % \ + metadata_dir) + return 1 + + t = portage.xpak.tbz2(binpkg_path) + t.recompose(metadata_dir) + return os.EX_OK + +def main(argv): + + if argv and sys.hexversion < 0x3000000 and not isinstance(argv[0], unicode): + for i, x in enumerate(argv): + argv[i] = portage._unicode_decode(x, errors='strict') + + valid_commands = ('recompose',) + description = "Perform metadata operations on a binary package." + usage = "usage: %s COMMAND [args]" % \ + os.path.basename(argv[0]) + + parser = optparse.OptionParser(description=description, usage=usage) + options, args = parser.parse_args(argv[1:]) + + if not args: + parser.error("missing command argument") + + command = args[0] + + if command not in valid_commands: + parser.error("invalid command: '%s'" % command) + + if command == 'recompose': + rval = command_recompose(args[1:]) + else: + raise AssertionError("invalid command: '%s'" % command) + + return rval + +if __name__ == "__main__": + rval = main(sys.argv[:]) + sys.exit(rval) -- cgit v1.2.3-1-g7c22