Mini Shell
Direktori : /bin/ |
|
Current File : //bin/kcarectl |
#!/bin/bash
set -euo pipefail
export PYTHONPATH="/usr/libexec/kcare/python:${PYTHONPATH:-}"
python=
# try different python versions, python3 is preferred
for try_python in python3 /usr/libexec/platform-python python2; do
python="$(command -v "$try_python" || true)"
if [ -z "$python" ]; then
# this version was not found
continue
fi
py_version_output=$("$python" --version 2>&1)
# remove "Python " prefix and split into array like (3 10 12)
IFS='.'
read -ra py_version_array <<<"${py_version_output/* /}"
py_version_major=${py_version_array[0]}
py_version_minor=${py_version_array[1]}
if [[ "$py_version_major" -eq 3 ]] && [[ "$py_version_minor" -le 5 ]]; then
# python 3.5 and older is not supported
# in this case we try to use python2
python=
continue
fi
# take first python which works for us
break
done
if [ -z "$python" ]; then
>&2 echo error: supported versions of python3 or python2 executables were not found
exit 1
fi
cmd=("$python" "-m" "kcarectl.__main__")
env_path="/etc/sysconfig/kcare/kcarectl.env"
if [ -f "$env_path" ]; then
set -a
# shellcheck disable=SC1090
. "$env_path"
set +a
fi
exec "${cmd[@]}" "$@"
Zerion Mini Shell 1.0