diff --git a/src/python/jw/pkg/lib/App.py b/src/python/jw/pkg/lib/App.py index ebd3fd6d..a778f73c 100644 --- a/src/python/jw/pkg/lib/App.py +++ b/src/python/jw/pkg/lib/App.py @@ -229,11 +229,16 @@ class App: # export ) self._add_arguments(self.__parser) - args, _ = self.__parser.parse_known_args(argv) - set_log_flags(args.log_flags) - set_log_level(args.log_level) - - log(DEBUG, f'-------------- Running: >{pretty_cmd(cmdline)}<') + if not add_all_parsers: + # Parse known args and configure logging, but only if we're not on + # an interactive usage mission. The problem with parse_known_args() + # is that it fails over missing but required arguments, and we + # don't want that to happen and never get to the point where + # '--help' is registered. + args, _ = self.__parser.parse_known_args(argv) + set_log_flags(args.log_flags) + set_log_level(args.log_level) + log(DEBUG, f'-------------- Running: >{pretty_cmd(cmdline)}<') add_cmds_to_parser(self, self.__parser, self.__cmds, all = add_all_parsers)