[PATCH 6/6] patman: Take project defaults into account for --help

Douglas Anderson
2022-06-30T21:09:58Z

I'd like it so that when you do "patman send --help" and you're using
Linux that it show it the proper defaults for Linux.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
---

tools/patman/main.py | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/tools/patman/main.py b/tools/patman/main.py
index 1ee44feab192..a0b0ad3bad9d 100755
--- a/tools/patman/main.py
+++ b/tools/patman/main.py
@@ -109,14 +109,19 @@ status.add_argument('-d', '--dest-branch', type=str,
status.add_argument('-f', '--force', action=BooleanOptionalAction,
help='Force overwriting an existing branch')

-# Parse options twice: first to get the project and second to handle
-# defaults properly (which depends on project)
+# Parse options several times:
+# - first to get the project and second to handle defaults properly (which
+# depends on project).
+# - second to handle --help after we've accounted for project defaults.
+# - finally after we have added an implicit command if necessary.
+#
# Use parse_known_args() in case 'cmd' is omitted
+argv = [arg for arg in sys.argv[1:] if arg not in ('-h', '--help')]
+args, _ = parser.parse_known_args(argv)
argv = sys.argv[1:]
-args, rest = parser.parse_known_args(argv)
if hasattr(args, 'project'):
settings.Setup(gitutil, parser, args.project, '')
- args, rest = parser.parse_known_args(argv)
+args, rest = parser.parse_known_args(argv)

# If we have a command, it is safe to parse all arguments
if args.cmd:
--
2.37.0.rc0.161.g10f37bed90-goog