Commits

Andy Mikhailenko committed bd568f3

Fixed edge case: when no command is specified at all, just display usage info. (We should also somehow support usable command-less cases but I have no idea what they can be like.)

Comments (0)

Files changed (2)

-version = '0.10.1'
+version = '0.10.2'
     # this will raise SystemExit if parsing fails
     args = parser.parse_args(argv)
 
-    if not hasattr(args, 'function'):
-        # FIXME: "./prog.py" hits this error while "./prog.py foo" doesn't
-        # if there were no commands defined for the parser (a possible case)
-        raise NotImplementedError('Cannot dispatch without commands')
+    if hasattr(args, 'function'):
+        if pre_call:
+            pre_call(args)
+        lines = _execute_command(args)
+    else:
+        # no commands at all; displaying help message
+        lines = [parser.format_usage()]
 
-    if pre_call:
-        pre_call(args)
-
-    lines = _execute_command(args)
     buf = []
 
     for line in lines: