From: Vasek Sraier Date: Mon, 6 Mar 2023 10:20:58 +0000 (+0100) Subject: manager: knot-resolver command X-Git-Tag: v6.0.1~11^2~3^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=20cd466e4a536033dd0ea2bdca31558428ee2733;p=thirdparty%2Fknot-resolver.git manager: knot-resolver command --- diff --git a/distro/pkg/rpm/knot-resolver.spec b/distro/pkg/rpm/knot-resolver.spec index 565d47c01..0b60b6b77 100644 --- a/distro/pkg/rpm/knot-resolver.spec +++ b/distro/pkg/rpm/knot-resolver.spec @@ -386,6 +386,7 @@ fi %{_sysconfdir}/knot-resolver/config.yml %{_unitdir}/knot-resolver.service %{_bindir}/kresctl +%{_bindir}/knot-resolver %{_datarootdir}/bash-completion/completions/kresctl %{_datarootdir}/fish/completions/kresctl.fish diff --git a/manager/knot_resolver_manager/__main__.py b/manager/knot_resolver_manager/__main__.py index e533e360b..c4cc866b7 100644 --- a/manager/knot_resolver_manager/__main__.py +++ b/manager/knot_resolver_manager/__main__.py @@ -1,8 +1,13 @@ # pylint: skip-file # flake8: noqa -# throws nice syntax error on old Python versions: -0_0 # Python >= 3.6 required +def run(): + # throws nice syntax error on old Python versions: + 0_0 # Python >= 3.6 required -from knot_resolver_manager import main -main.main() + from knot_resolver_manager import main + main.main() + + +if __name__ == "__main__": + run() diff --git a/manager/knot_resolver_manager/main.py b/manager/knot_resolver_manager/main.py index 362c6bbaa..f10e1799b 100644 --- a/manager/knot_resolver_manager/main.py +++ b/manager/knot_resolver_manager/main.py @@ -6,6 +6,7 @@ file to allow us to exclude the __main__.py file from black's autoformatting import argparse import sys from pathlib import Path +from typing import NoReturn from knot_resolver_manager import compat from knot_resolver_manager.constants import DEFAULT_MANAGER_CONFIG_FILE @@ -27,7 +28,7 @@ def parse_args() -> argparse.Namespace: return parser.parse_args() -def main() -> None: +def main() -> NoReturn: # initial logging is to memory until we read the config logger_startup() diff --git a/manager/pyproject.toml b/manager/pyproject.toml index 0f61011dc..68e17426d 100644 --- a/manager/pyproject.toml +++ b/manager/pyproject.toml @@ -43,6 +43,7 @@ poetry = "^1.1.12" [tool.poetry.scripts] kresctl = 'knot_resolver_manager.cli.main:main' +knot-resolver = 'knot_resolver_manager.__main__:run' [tool.poe.tasks] run = { cmd = "scripts/run", help = "Run the manager" } diff --git a/manager/setup.py b/manager/setup.py index 88fce46cd..45e29c6cb 100644 --- a/manager/setup.py +++ b/manager/setup.py @@ -27,7 +27,8 @@ install_requires = \ 'typing-extensions'] entry_points = \ -{'console_scripts': ['kresctl = knot_resolver_manager.cli.main:main']} +{'console_scripts': ['knot-resolver = knot_resolver_manager.__main__:run', + 'kresctl = knot_resolver_manager.cli.main:main']} setup_kwargs = { 'name': 'knot-resolver-manager', diff --git a/manager/tests/packaging/control b/manager/tests/packaging/control index cda5a8fd4..75c270934 100644 --- a/manager/tests/packaging/control +++ b/manager/tests/packaging/control @@ -8,6 +8,11 @@ Tests: kresctl.sh Tests-Directory: manager/tests/packaging +{# Test that knot-resolver command exists and is in $PATH #} +Tests: knot-resolver.sh +Tests-Directory: manager/tests/packaging + + {# Tests that manager can be started with default config and it resolves some domains #} Tests: systemd_service.sh Tests-Directory: manager/tests/packaging diff --git a/manager/tests/packaging/knot-resolver.sh b/manager/tests/packaging/knot-resolver.sh new file mode 100755 index 000000000..6aa38bde3 --- /dev/null +++ b/manager/tests/packaging/knot-resolver.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +# fail fast +set -e + +# We expect `kresctl` command to exist in $PATH +command -v knot-resolver > /dev/null