#!/usr/bin/env python import os import optparse import sys # Add lib to path sys.path.insert(0,os.path.abspath(os.path.join(__file__,'../../lib'))) import wizard.command def main(): usage = """usage: %prog [-d|--version-dir] COMMAND [ARGS] Wizard is a Git-based autoinstall management system for scripts. Its commands are: info Reports information about an autoinstall migrate Migrate autoinstalls from old format to Git-based format summary Generate statistics about autoinstalls See '%prog help COMMAND' for more information on a specific command.""" parser = optparse.OptionParser(usage) parser.add_option("-d", "--version-dir", dest="version_dir", default="/afs/athena.mit.edu/contrib/scripts/sec-tools/store/versions", help="Location of parallel-find output") # Find the end of the "global" options i = 1 try: while not sys.argv[i] or sys.argv[i][0] == '-': if sys.argv[i] == "-h" or sys.argv[i] == "--help": parser.print_help() raise SystemExit(-1) i += 1 except IndexError: parser.print_help() raise SystemExit(-1) options, args = parser.parse_args(sys.argv[1:i+1]) rest_argv = sys.argv[i+1:] command = args[0] # shouldn't fail if command == "help": try: getattr(wizard.command, rest_argv[0])(['-h'], options) except AttributeError: parser.error("invalid action") except IndexError: parser.print_help() raise SystemExit(-1) # Dispatch commands try: command_module = getattr(wizard.command, command) except AttributeError: parser.error("invalid action") command_module.main(rest_argv, options) if __name__ == "__main__": main()