Files
computer-playbook/scripts/meta/env/python.sh
T

48 lines
985 B
Bash
Executable File

#!/usr/bin/env bash
# shellcheck shell=bash
#
# Resolve Python/venv-related environment variables.
set -euo pipefail
if [[ "${INFINITO_ENV_PYTHON_LOADED:-}" == "1" ]]; then
return 0
fi
export INFINITO_ENV_PYTHON_LOADED="1"
_virtual_env="${VIRTUAL_ENV:-}"
if [[ -n "${_virtual_env}" ]]; then
: "${VENV_BASE:=${VENV_BASE:-$(dirname "${_virtual_env}")/}}"
else
: "${VENV_BASE:=${VENV_BASE:-/opt/venvs}}"
fi
: "${VENV_NAME:=infinito}"
: "${VENV_FALLBACK:=${VENV_BASE%/}/${VENV_NAME}}"
: "${VENV:=${_virtual_env:-$VENV_FALLBACK}}"
_default_python="${VENV%/}/bin/python"
if [[ -x "${_default_python}" ]]; then
: "${PYTHON:=${_default_python}}"
else
: "${PYTHON:=python3}"
fi
: "${PIP:=${PYTHON} -m pip}"
export VENV_BASE VENV_NAME VENV_FALLBACK VENV
export PYTHON PIP
_venv_bin="${VENV%/}/bin"
if [[ -d "${_venv_bin}" ]]; then
case ":${PATH:-}:" in
*:"${_venv_bin}":*) ;;
*)
export PATH="${_venv_bin}${PATH:+:${PATH}}"
;;
esac
fi
: "${PYTHONPATH:=.}"
export PYTHONPATH