changeset 146:7d8df8311e3b

Optimize argument parsing for the "version" command
author Franz Glasner <fzglas.hg@dom66.de>
date Fri, 03 Jan 2025 16:32:40 +0100
parents 073e0faea599
children ed35f3c9e2b5
files cutils/treesum.py
diffstat 1 files changed, 6 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/cutils/treesum.py	Fri Jan 03 16:22:59 2025 +0100
+++ b/cutils/treesum.py	Fri Jan 03 16:32:40 2025 +0100
@@ -119,20 +119,22 @@
                     "This is an alias to \"generate\".")
     _populate_generate_arguments(genparser2)
 
-    vparser = subparsers.add_parser(
+    subparsers.add_parser(
         "version",
         help="Show the program's version number and exit",
         description="Show the program's version number and exit.")
-    vparser.add_argument(
-        "args", nargs=argparse.REMAINDER, help="IGNORED.")
 
-    opts = parser.parse_args(args=argv)
+    # Parse leniently to just check for "version"
+    opts, _dummy = parser.parse_known_args(args=argv)
 
     if opts.subcommand == "version":
         print("%s (rv:%s)" % (__version__, __revision__),
               file=sys.stdout)
         sys.exit(0)
 
+    # Reparse strictly
+    opts = parser.parse_args(args=argv)
+
     if not opts.algorithm:
         opts.algorithm = util.argv2algo("blake2b-256")