[PATCH v2 2/6] patman: Fix implicit command inserting

Douglas Anderson dianders at chromium.org
Fri Jul 1 22:23:58 CEST 2022

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 <dianders at chromium.org>
Tested-by: Brian Norris <briannorris at chromium.org>
Reviewed-by: Brian Norris <briannorris at 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__":

More information about the U-Boot mailing list