]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
manager: knot-resolver command
authorVasek Sraier <git@vakabus.cz>
Mon, 6 Mar 2023 10:20:58 +0000 (11:20 +0100)
committerVladimír Čunát <vladimir.cunat@nic.cz>
Mon, 29 May 2023 07:50:57 +0000 (07:50 +0000)
distro/pkg/rpm/knot-resolver.spec
manager/knot_resolver_manager/__main__.py
manager/knot_resolver_manager/main.py
manager/pyproject.toml
manager/setup.py
manager/tests/packaging/control
manager/tests/packaging/knot-resolver.sh [new file with mode: 0755]

index 565d47c01b4eea5108fb0548aa0b2fb449d872c1..0b60b6b77447683d26de9d156d7995293fe64186 100644 (file)
@@ -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
 
index e533e360b8079f8b090d32b8d6d45277c3f021b6..c4cc866b7f9780828eaf08bf1c52c5108dc995cf 100644 (file)
@@ -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()
index 362c6bbaa409a3b8f83914261be5d639c96eec72..f10e1799bae5af6f0d392bb24a29e1b6124c046a 100644 (file)
@@ -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()
 
index 0f61011dc7a9cfa782114a8178e767249342839b..68e17426ddb35f6f4ffc575bca95ff4f48899351 100644 (file)
@@ -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" }
index 88fce46cd44e72d9303f535b41f57d73c2d272ca..45e29c6cb7ceaa24f0a7375ef060df96ab65bd7f 100644 (file)
@@ -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',
index cda5a8fd48c30017fc5258ef322b52f9850b4b06..75c270934b1171526a41a1e3c372fc16f832d54c 100644 (file)
@@ -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 (executable)
index 0000000..6aa38bd
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+# fail fast
+set -e
+
+# We expect `kresctl` command to exist in $PATH
+command -v knot-resolver > /dev/null