generate_changelog/rpmautospec/cli.py

44 lines
1,022 B
Python
Raw Permalink Normal View History

import argparse
import sys
from . import changelog, release
subcmd_modules_by_name = {}
def get_cli_args(args):
global subcmd_modules_by_name
parser = argparse.ArgumentParser(prog="rpmautospec")
# global arguments
parser.add_argument(
"--koji-url",
help="The base URL of the Koji hub",
default="https://koji.fedoraproject.org/kojihub",
)
# parsers for sub-commands
subparsers = parser.add_subparsers(dest="subcommand", required=True)
for subcmd_module in (changelog, release):
subcmd_name = subcmd_module.register_subcommand(subparsers)
if subcmd_name in subcmd_modules_by_name:
raise RuntimeError(f"Sub-command specified more than once: {subcmd_name}.")
subcmd_modules_by_name[subcmd_name] = subcmd_module
return parser.parse_args(args)
def main():
args = get_cli_args(sys.argv[1:])
if args.subcommand:
subcmd_module = subcmd_modules_by_name[args.subcommand]
subcmd_module.main(args)