diff options
author | Chris Ball <cjb@laptop.org> | 2009-07-13 11:45:40 -0400 |
---|---|---|
committer | Chris Ball <cjb@laptop.org> | 2009-07-13 11:45:40 -0400 |
commit | 5e249abfee7273c79640c4211607a6b4bf7b374c (patch) | |
tree | d588c5c801e142b59af53b9f9c15e3f9e1982737 /be | |
parent | 64f62aa2bb841c483e8cb2b663434b3ad3038f4c (diff) | |
parent | 17adbfb1c04684b986bf2c97cc4fa5197198aadc (diff) | |
download | bugseverywhere-5e249abfee7273c79640c4211607a6b4bf7b374c.tar.gz |
Large merge from W. Trevor King. Highlights:
be show --only-raw-body
be-mbox-to-xml
be-xml-to-mbox
be comment --xml
be --dir
Diffstat (limited to 'be')
-rwxr-xr-x | be | 88 |
1 files changed, 58 insertions, 30 deletions
@@ -19,38 +19,66 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - +import os import sys + from libbe import cmdutil, _version -__doc__ == cmdutil.help() +__doc__ = cmdutil.help() + +usage = "be [options] [command] [command_options ...] [command_args ...]" -if len(sys.argv) == 1 or sys.argv[1] in ('--help', '-h'): - print cmdutil.help() -elif sys.argv[1] == '--complete': - for command, module in cmdutil.iter_commands(): - print command - print '\n'.join(["--help","--complete","--options","--version"]) -elif sys.argv[1] == '--version': +parser = cmdutil.CmdOptionParser(usage) +parser.command = "be" +parser.add_option("--version", action="store_true", dest="version", + help="Print version string and exit.") +parser.add_option("-d", "--dir", dest="dir", metavar="DIR", + help="Run this command from DIR instead of the current directory.") + +try: + options,args = parser.parse_args() + for option,value in cmdutil.option_value_pairs(options, parser): + if value == "--complete": + if option == "dir": + if len(args) == 0: + args = ["."] + paths = cmdutil.complete_path(args[0]) + raise cmdutil.GetCompletions(paths) +except cmdutil.GetHelp: + print cmdutil.help(parser=parser) + sys.exit(0) +except cmdutil.GetCompletions, e: + print '\n'.join(e.completions) + sys.exit(0) + +if options.version == True: print _version.version_info["revision_id"] -else: - try: - try: - sys.exit(cmdutil.execute(sys.argv[1], sys.argv[2:])) - except KeyError, e: - raise cmdutil.UserError("Unknown command \"%s\"" % e.args[0]) - except cmdutil.GetHelp: - print cmdutil.help(sys.argv[1]) - sys.exit(0) - except cmdutil.GetCompletions, e: - print '\n'.join(e.completions) - sys.exit(0) - except cmdutil.UsageError, e: - print "Invalid usage:", e - print "\nArgs:", sys.argv[1:] - print cmdutil.help(sys.argv[1]) - sys.exit(1) - except cmdutil.UserError, e: - print "ERROR:" - print e - sys.exit(1) + sys.exit(0) +if options.dir != None: + os.chdir(options.dir) + +try: + if len(args) == 0: + raise cmdutil.UsageError, "must supply a command" + sys.exit(cmdutil.execute(args[0], args[1:])) +except cmdutil.GetHelp: + print cmdutil.help(sys.argv[1]) + sys.exit(0) +except cmdutil.GetCompletions, e: + print '\n'.join(e.completions) + sys.exit(0) +except cmdutil.UnknownCommand, e: + print e + sys.exit(1) +except cmdutil.UsageError, e: + print "Invalid usage:", e + if len(args) == 0: + print cmdutil.help(parser=parser) + else: + print "\nArgs:", args + print cmdutil.help(sys.argv[1]) + sys.exit(1) +except cmdutil.UserError, e: + print "ERROR:" + print e + sys.exit(1) |