aboutsummaryrefslogtreecommitdiffstats
path: root/be
diff options
context:
space:
mode:
authorChris Ball <cjb@laptop.org>2009-07-13 11:45:40 -0400
committerChris Ball <cjb@laptop.org>2009-07-13 11:45:40 -0400
commit5e249abfee7273c79640c4211607a6b4bf7b374c (patch)
treed588c5c801e142b59af53b9f9c15e3f9e1982737 /be
parent64f62aa2bb841c483e8cb2b663434b3ad3038f4c (diff)
parent17adbfb1c04684b986bf2c97cc4fa5197198aadc (diff)
downloadbugseverywhere-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-xbe88
1 files changed, 58 insertions, 30 deletions
diff --git a/be b/be
index 2023daa..657f968 100755
--- a/be
+++ b/be
@@ -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)