The logic to insert an implicit command has always been a bit broken but it was masked by another bug fixed in the patch ("patman: Don't look at sys.argv when parsing settings"). Specifically, imagine that you're just calling patman like this:
patman -c1 After the parse_known_args() command then the "-c1" will have been parsed and we'll have no command. The "rest" variable will be an empty list. Going into the logic you can see that nargs = 0. The implicit insertion of send ideally would create an argument list of: ['-c1', 'send'] ...but it doesn't because argv[:-0] is the same as argv[:0] and that's an empty list. Let's fix this little glitch. Signed-off-by: Douglas Anderson <diand...@chromium.org> Tested-by: Brian Norris <briannor...@chromium.org> Reviewed-by: Brian Norris <briannor...@chromium.org> --- (no changes since v1) tools/patman/main.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/patman/main.py b/tools/patman/main.py index 2a2ac4570931..336f4e439aa9 100755 --- a/tools/patman/main.py +++ b/tools/patman/main.py @@ -120,7 +120,9 @@ else: # No command, so insert it after the known arguments and before the ones # that presumably relate to the 'send' subcommand nargs = len(rest) - argv = argv[:-nargs] + ['send'] + rest + if nargs: + argv = argv[:-nargs] + argv = argv + ['send'] + rest args = parser.parse_args(argv) if __name__ != "__main__": -- 2.37.0.rc0.161.g10f37bed90-goog