python/lib/aubio/cmd.py: add help subcommand
authorPaul Brossier <piem@piem.org>
Thu, 14 Sep 2017 11:36:08 +0000 (13:36 +0200)
committerPaul Brossier <piem@piem.org>
Thu, 14 Sep 2017 11:36:08 +0000 (13:36 +0200)
python/lib/aubio/cmd.py

index cebf0da..a74d2e0 100644 (file)
@@ -22,6 +22,8 @@ def aubio_parser():
     subparsers = parser.add_subparsers(title='commands', dest='command',
             metavar="")
 
+    parser_add_subcommand_help(subparsers)
+
     parser_add_subcommand_onset(subparsers)
     parser_add_subcommand_pitch(subparsers)
     parser_add_subcommand_beat(subparsers)
@@ -33,6 +35,12 @@ def aubio_parser():
 
     return parser
 
+def parser_add_subcommand_help(subparsers):
+    # global help subcommand
+    subparsers.add_parser('help',
+            help='show help message',
+            formatter_class = argparse.ArgumentDefaultsHelpFormatter)
+
 def parser_add_subcommand_onset(subparsers):
     # onset subcommand
     subparser = subparsers.add_parser('onset',
@@ -436,10 +444,13 @@ def main():
         sys.exit(0)
     elif 'verbose' in args and args.verbose > 3:
         sys.stderr.write('aubio version ' + aubio.version + '\n')
-    if 'command' not in args or args.command is None:
+    if 'command' not in args or args.command is None or args.command in ['help']:
         # no command given, print help and return 1
         parser.print_help()
-        sys.exit(1)
+        if args.command and args.command in ['help']:
+            sys.exit(0)
+        else:
+            sys.exit(1)
     elif not args.source_uri and not args.source_uri2:
         sys.stderr.write("Error: a source is required\n")
         parser.print_help()