aboutsummaryrefslogtreecommitdiffstats
path: root/be
diff options
context:
space:
mode:
authorW. Trevor King <wking@drexel.edu>2009-07-13 07:23:16 -0400
committerW. Trevor King <wking@drexel.edu>2009-07-13 07:23:16 -0400
commitffb8e95faed6fec4e1b06d7bfba3cc21661c677f (patch)
tree162d51088197c8b59848d3fbea72dd70e2424a36 /be
parent77fe8d1e2c71fb783160ab9946d9dc9e471a11c1 (diff)
downloadbugseverywhere-ffb8e95faed6fec4e1b06d7bfba3cc21661c677f.tar.gz
Use CmdOptionParser in "be".
All the becommands have been using cmdutil CmdOptionParser for a long time, but "be" parsed its options by hand. Now it used CmdOptionParser, which makes adding new options much easier.
Diffstat (limited to 'be')
-rwxr-xr-xbe74
1 files changed, 45 insertions, 29 deletions
diff --git a/be b/be
index b68a414..5bdd6b2 100755
--- a/be
+++ b/be
@@ -19,38 +19,54 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
import sys
+
from libbe import cmdutil, _version
-__doc__ == cmdutil.help()
+__doc__ = cmdutil.help()
+
+usage = "be [options] [command] [command_options ...] [command_args ...]"
+
+parser = cmdutil.CmdOptionParser(usage)
+parser.command = "be"
+parser.add_option("--version", action="store_true", dest="version",
+ help="Print version string and exit")
-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':
+try:
+ options,args = parser.parse_args()
+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:
- sys.exit(cmdutil.execute(sys.argv[1], sys.argv[2:]))
- 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
- print "\nArgs:", sys.argv[1:]
+ sys.exit(0)
+
+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)
+ sys.exit(1)
+except cmdutil.UserError, e:
+ print "ERROR:"
+ print e
+ sys.exit(1)