Attach ImportError message to UnknownCommand to aid debugging.
authorW. Trevor King <wking@drexel.edu>
Wed, 25 May 2011 14:30:19 +0000 (10:30 -0400)
committerW. Trevor King <wking@drexel.edu>
Wed, 25 May 2011 14:30:19 +0000 (10:30 -0400)
libbe/command/base.py

index 4ab4a21e1a9192a4ed84fc9eb9e71c2e720a6a78..311791f2eb561a9883baf2a324e366158ae3a590 100644 (file)
@@ -54,10 +54,15 @@ class UsageError (UserError):
 
 
 class UnknownCommand (UsageError):
-    def __init__(self, command_name):
+    def __init__(self, command_name, message=None):
+        uc_message = "Unknown command '%s'" % command_name
+        if message is None:
+            message = uc_message
+        else:
+            message = '%s\n(%s)' % (uc_message, message)
         super(UnknownCommand, self).__init__(
             command_name=command_name,
-            message="Unknown command '%s'" % command_name)
+            message=message)
 
 
 def get_command(command_name):
@@ -75,7 +80,7 @@ def get_command(command_name):
         cmd = libbe.util.plugin.import_by_name(
             'libbe.command.%s' % command_name.replace("-", "_"))
     except ImportError, e:
-        raise UnknownCommand(command_name)
+        raise UnknownCommand(command_name, message=unicode(e))
     return cmd
 
 def get_command_class(module=None, command_name=None):