Mini Shell

Direktori : /usr/bin/
Upload File :
Current File : //usr/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