aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Bentley <abentley@panoramicfeedback.com>2005-03-11 19:28:15 +0000
committerAaron Bentley <abentley@panoramicfeedback.com>2005-03-11 19:28:15 +0000
commitd1a7b4f7f14aded08d3e9da2da1b155b2da70c53 (patch)
tree7d571d81e68c1fffd8e3a48eb899fd0fde1a8b38
parentf254781274f35c485befb4f6acedb8fb8d1f797b (diff)
downloadbugseverywhere-d1a7b4f7f14aded08d3e9da2da1b155b2da70c53.tar.gz
Added exceptions for missing commands, handled -, plugin command exec
-rwxr-xr-xbe10
-rw-r--r--libbe/cmdutil.py13
2 files changed, 11 insertions, 12 deletions
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()