comparison cutils/treesum.py @ 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
comparison
equal deleted inserted replaced
145:073e0faea599 146:7d8df8311e3b
117 help="Alias for \"generate\"", 117 help="Alias for \"generate\"",
118 description="Generate checksums for directory trees. " 118 description="Generate checksums for directory trees. "
119 "This is an alias to \"generate\".") 119 "This is an alias to \"generate\".")
120 _populate_generate_arguments(genparser2) 120 _populate_generate_arguments(genparser2)
121 121
122 vparser = subparsers.add_parser( 122 subparsers.add_parser(
123 "version", 123 "version",
124 help="Show the program's version number and exit", 124 help="Show the program's version number and exit",
125 description="Show the program's version number and exit.") 125 description="Show the program's version number and exit.")
126 vparser.add_argument( 126
127 "args", nargs=argparse.REMAINDER, help="IGNORED.") 127 # Parse leniently to just check for "version"
128 128 opts, _dummy = parser.parse_known_args(args=argv)
129 opts = parser.parse_args(args=argv)
130 129
131 if opts.subcommand == "version": 130 if opts.subcommand == "version":
132 print("%s (rv:%s)" % (__version__, __revision__), 131 print("%s (rv:%s)" % (__version__, __revision__),
133 file=sys.stdout) 132 file=sys.stdout)
134 sys.exit(0) 133 sys.exit(0)
134
135 # Reparse strictly
136 opts = parser.parse_args(args=argv)
135 137
136 if not opts.algorithm: 138 if not opts.algorithm:
137 opts.algorithm = util.argv2algo("blake2b-256") 139 opts.algorithm = util.argv2algo("blake2b-256")
138 140
139 return treesum(opts) 141 return treesum(opts)