pmb.parse: add get_parser for returning ArgumentParser obj (MR 2266)

This is needed for sphinx autoprogram since that expects an
argparse.ArgumentParser, and arguments() returns some argparse
"Namespace" obj. Useful for sphinx/autoprogram and maybe other things
later that want to get at pmb's full args.
This commit is contained in:
Clayton Craft 2024-04-30 09:13:39 -07:00 committed by Newbyte
parent a5575a28f9
commit 415e7364f4
No known key found for this signature in database
GPG key ID: 8A700086A9FE41FD
2 changed files with 8 additions and 3 deletions

View file

@ -624,7 +624,7 @@ def add_kernel_arg(subparser, name="package", nargs="?", *args, **kwargs):
arg.completer = kernel_completer
def arguments():
def get_parser():
parser = argparse.ArgumentParser(prog="pmbootstrap")
arch_native = pmb.config.arch_native
arch_choices = set(pmb.config.build_device_architectures + [arch_native])
@ -930,8 +930,13 @@ def arguments():
if "argcomplete" in sys.modules:
argcomplete.autocomplete(parser, always_complete_options="long")
return parser
def arguments():
# Parse and extend arguments (also backup unmodified result from argparse)
args = parser.parse_args()
args = get_parser().parse_args()
setattr(args, "from_argparse", copy.deepcopy(args))
setattr(args.from_argparse, "from_argparse", args.from_argparse)