From: Oto Šťáva Date: Thu, 24 Aug 2023 06:21:40 +0000 (+0200) Subject: manager/poe: allow kresctl to be run under Python <3.8 X-Git-Tag: v6.0.2~2^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=73fc67c75b245dff59321452f45992869d45b623;p=thirdparty%2Fknot-resolver.git manager/poe: allow kresctl to be run under Python <3.8 --- diff --git a/manager/poe b/manager/poe index abcc2a8d6..290652809 100755 --- a/manager/poe +++ b/manager/poe @@ -3,9 +3,17 @@ script_dir="$(dirname "$(readlink -f "$0")")" if poetry --directory "$script_dir" run python -c 'import sys; sys.exit(0 if sys.version_info >= (3, 8) else 1)'; then + # Run poethepoet with the project root in the $script_dir directory (requires Python >=3.8) poetry --directory "$script_dir" run poe --root "$script_dir" $@ elif [ "$PWD" == "$script_dir" ]; then - poetry run poe $@ + # Compatibility workarounds for Python <3.8 and poethepoet <0.22.0 + # Only works if the current working directory is the same as the script directory. + args=("$@") + if [ "${args[0]}" == "kresctl" ]; then + echo "WARNING: Workaround for Python <3.8: replacing 'kresctl' with 'kresctl-nocwd'" >&2 + args[0]="kresctl-nocwd" + fi + poetry run poe "${args[@]}" else echo "Running script from non project root is not supported for current 'poethepoet' version." >&2 echo "poethepoet version - must be >=0.22.0" >&2 diff --git a/manager/pyproject.toml b/manager/pyproject.toml index 49b34cd54..c1f70b1aa 100644 --- a/manager/pyproject.toml +++ b/manager/pyproject.toml @@ -69,6 +69,7 @@ fixdeps = { shell = "poetry install; npm install; npm update", help = "Install/u 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:main", cwd="${POE_PWD}", help="run kresctl" } +kresctl-nocwd = { script = "knot_resolver_manager.cli.main:main", help="run kresctl" } # Python <3.8 and poethepoet <0.22.0 compatibility (see also `./poe`) clean = """ rm -rf .coverage .mypy_cache