Andy Mikhailenko avatar 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:
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.