From: Aaron Bentley Date: Fri, 11 Mar 2005 19:28:15 +0000 (+0000) Subject: Added exceptions for missing commands, handled -, plugin command exec X-Git-Tag: 1.0.0~360 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=d1a7b4f7f14aded08d3e9da2da1b155b2da70c53;p=be.git Added exceptions for missing commands, handled -, plugin command exec --- diff --git a/be b/be index 3c6c36d..93f8e48 100755 --- a/be +++ b/be @@ -40,15 +40,7 @@ Supported commands""" else: try: try: - cmd = { - "list": becommands.list.execute, - "show": becommands.show.execute, - "set-root": becommands.set_root.execute, - "new": becommands.new.execute, - "close": becommands.close.execute, - "open": becommands.open.execute, - "severity": becommands.severity.execute, - }[sys.argv[1]] + execute(sys.argv[1], sys.argv[2:]) except KeyError, e: raise UserError("Unknown command \"%s\"" % e.args[0]) cmd(sys.argv[2:]) diff --git a/libbe/cmdutil.py b/libbe/cmdutil.py index 77f0dfb..891e273 100644 --- a/libbe/cmdutil.py +++ b/libbe/cmdutil.py @@ -51,10 +51,17 @@ def bug_summary(bug, bugs): bug.summary) def iter_commands(): - return plugin.iter_plugins("becommands") + for name, module in plugin.iter_plugins("becommands"): + yield name.replace("_", "-"), module + +def get_command(command_name): + cmd = plugin.get_plugin("becommands", command_name.replace("-", "_")) + if cmd is None: + raise UserError("Unknown command %s" % command_name) + return cmd def execute(cmd, args): - return plugin.get_plugin("becommands", cmd).execute(args) + return get_command(cmd).execute(args) def help(cmd, args): - return plugin.get_plugin("becommands", cmd).help() + return get_command(cmd).help()