From: Aleš Mrázek Date: Mon, 7 Nov 2022 21:45:47 +0000 (+0100) Subject: manager: kresctl: move main function from __main__ X-Git-Tag: v6.0.0a1~12^2~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4aebe48bf2121f8a7d6a747ac706dbdab04f4628;p=thirdparty%2Fknot-resolver.git manager: kresctl: move main function from __main__ --- diff --git a/manager/knot_resolver_manager/cli/__main__.py b/manager/knot_resolver_manager/cli/__main__.py index 5daf46630..88a83a675 100644 --- a/manager/knot_resolver_manager/cli/__main__.py +++ b/manager/knot_resolver_manager/cli/__main__.py @@ -1,54 +1,4 @@ -import argparse -import importlib -import os - -from knot_resolver_manager.cli.command import install_commands_parsers -from knot_resolver_manager.cli.kresctl import Kresctl - - -def autoimport_commands() -> None: - prefix = "knot_resolver_manager.cli.cmd." - for module_name in os.listdir(os.path.dirname(__file__) + "/cmd"): - if module_name[-3:] != ".py": - continue - importlib.import_module(f"{prefix}{module_name[:-3]}") - - -def create_main_argument_parser() -> argparse.ArgumentParser: - parser = argparse.ArgumentParser("kresctl", description="Command-line interface for controlling Knot Resolver") - parser.add_argument( - "-i", - "--interactive", - action="store_true", - help="Interactive mode of kresctl utility", - default=False, - required=False, - ) - parser.add_argument( - "-s", - "--socket", - action="store", - type=str, - help="Path to the Unix domain socket of the configuration API", - default=["http+unix://%2Fvar%2Frun%2Fknot-resolver%2Fmanager.sock"], # FIXME - nargs=1, - required=False, - ) - return parser - - -def main() -> None: - autoimport_commands() - parser = create_main_argument_parser() - install_commands_parsers(parser) - namespace, unknown_args = parser.parse_known_args() - kresctl = Kresctl(namespace, unknown_args, parser) - - if namespace.interactive or len(vars(namespace)) == 2: - kresctl.interactive() - else: - kresctl.execute() - +from knot_resolver_manager.cli.main import main if __name__ == "__main__": main() diff --git a/manager/knot_resolver_manager/cli/main.py b/manager/knot_resolver_manager/cli/main.py new file mode 100644 index 000000000..5b51856ba --- /dev/null +++ b/manager/knot_resolver_manager/cli/main.py @@ -0,0 +1,50 @@ +import argparse +import importlib +import os + +from knot_resolver_manager.cli.command import install_commands_parsers +from knot_resolver_manager.cli.kresctl import Kresctl + + +def autoimport_commands() -> None: + prefix = "knot_resolver_manager.cli.cmd." + for module_name in os.listdir(os.path.dirname(__file__) + "/cmd"): + if module_name[-3:] != ".py": + continue + importlib.import_module(f"{prefix}{module_name[:-3]}") + + +def create_main_argument_parser() -> argparse.ArgumentParser: + parser = argparse.ArgumentParser("kresctl", description="Command-line interface for controlling Knot Resolver") + parser.add_argument( + "-i", + "--interactive", + action="store_true", + help="Interactive mode of kresctl utility", + default=False, + required=False, + ) + parser.add_argument( + "-s", + "--socket", + action="store", + type=str, + help="Path to the Unix domain socket of the configuration API", + default=["http+unix://%2Fvar%2Frun%2Fknot-resolver%2Fmanager.sock"], # FIXME + nargs=1, + required=False, + ) + return parser + + +def main() -> None: + autoimport_commands() + parser = create_main_argument_parser() + install_commands_parsers(parser) + namespace, unknown_args = parser.parse_known_args() + kresctl = Kresctl(namespace, unknown_args, parser) + + if namespace.interactive or len(vars(namespace)) == 2: + kresctl.interactive() + else: + kresctl.execute() diff --git a/manager/pyproject.toml b/manager/pyproject.toml index 0ddf341cb..0f61011dc 100644 --- a/manager/pyproject.toml +++ b/manager/pyproject.toml @@ -42,7 +42,7 @@ types-dataclasses = "^0.6.4" poetry = "^1.1.12" [tool.poetry.scripts] -kresctl = 'knot_resolver_manager.cli:main' +kresctl = 'knot_resolver_manager.cli.main:main' [tool.poe.tasks] run = { cmd = "scripts/run", help = "Run the manager" } @@ -54,7 +54,7 @@ format = { shell = "black knot_resolver_manager/ tests/ scripts/ build.py; isort fixdeps = { shell = "poetry install; npm install; npm update", help = "Install/update dependencies according to configuration files"} commit = { shell = "scripts/commit", help = "Invoke every single check before commiting" } container = { cmd = "scripts/container.py", help = "Manage containers" } -kresctl = { script = "knot_resolver_manager.cli:main", help="run kresctl" } +kresctl = { script = "knot_resolver_manager.cli.main:main", help="run kresctl" } clean = """ rm -rf .coverage .mypy_cache diff --git a/manager/setup.py b/manager/setup.py index 28e870433..88fce46cd 100644 --- a/manager/setup.py +++ b/manager/setup.py @@ -27,7 +27,7 @@ install_requires = \ 'typing-extensions'] entry_points = \ -{'console_scripts': ['kresctl = knot_resolver_manager.cli:main']} +{'console_scripts': ['kresctl = knot_resolver_manager.cli.main:main']} setup_kwargs = { 'name': 'knot-resolver-manager',