Skip to content
Snippets Groups Projects
Commit 5fc176ac authored by Robert Eckelmann's avatar Robert Eckelmann Committed by Luca Weiss
Browse files

Refactor argument parsing


In order to make Sphinx be able to list the supported commands, refactor
the argument parsing code to return ArgumentParser object, and align
the function naming closer to how it works in pmbootstrap.

Co-developed-by: default avatarLuca Weiss <luca@lucaweiss.eu>
parent 66eacc6c
No related branches found
No related tags found
No related merge requests found
......@@ -168,7 +168,7 @@ def print_status(mr_id: int, no_cache: bool = False) -> None:
print("* Finish the MR: push, approve, merge, comment ('mrhlpr finish')")
def parse_args() -> argparse.Namespace:
def get_parser() -> argparse.ArgumentParser:
parser = argparse.ArgumentParser()
parser.add_argument(
"-n", "--no-cache", action="store_true", help="do not use local cache for MR information"
......@@ -248,11 +248,11 @@ def parse_args() -> argparse.Namespace:
if "argcomplete" in sys.modules:
argcomplete.autocomplete(parser, always_complete_options="long")
return parser.parse_args()
return parser
def main() -> None:
args = parse_args()
args = get_parser().parse_args()
if args.verbose:
logging.getLogger().setLevel(logging.DEBUG)
if args.action == "status":
......
......@@ -18,7 +18,7 @@ except ImportError:
pass
def parse_args_parser_add(sub) -> None:
def arguments_add(sub) -> None:
""":param sub: argparser's subparser"""
parser = sub.add_parser("add", help="install packages from an MR")
parser.add_argument(
......@@ -27,7 +27,7 @@ def parse_args_parser_add(sub) -> None:
parser.add_argument("mr_id", type=int, help="merge request ID")
def parse_args_parser_upgrade(sub) -> None:
def arguments_upgrade(sub) -> None:
""":param sub: argparser's subparser"""
parser = sub.add_parser("upgrade", help="upgrade to packages from an MR")
parser.add_argument(
......@@ -42,12 +42,12 @@ def parse_args_parser_upgrade(sub) -> None:
parser.add_argument("mr_id", type=int, help="merge request ID")
def parse_args_parser_zap(sub) -> None:
def arguments_zap(sub) -> None:
""":param sub: argparser's subparser"""
sub.add_parser("zap", help="uninstall previously added packages")
def parse_args() -> argparse.Namespace:
def get_parser() -> argparse.ArgumentParser:
parser = argparse.ArgumentParser()
parser.add_argument(
"-n", "--no-cache", action="store_true", help="do not use local cache for MR information"
......@@ -64,17 +64,17 @@ def parse_args() -> argparse.Namespace:
sub = parser.add_subparsers(title="action", dest="action")
sub.required = True
parse_args_parser_add(sub)
parse_args_parser_upgrade(sub)
parse_args_parser_zap(sub)
arguments_add(sub)
arguments_upgrade(sub)
arguments_zap(sub)
if "argcomplete" in sys.modules:
argcomplete.autocomplete(parser, always_complete_options="long")
return parser.parse_args()
return parser
def main() -> None:
args = parse_args()
args = get_parser().parse_args()
if args.verbose:
logging.getLogger().setLevel(logging.DEBUG)
if args.action == "zap":
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment