Files
computer-playbook/scripts/meta/env/python.sh
T
kevinveenbirkenbach c1a4660a8b refactor(env): split meta env into modular scripts
replace env.sh usage with scripts/meta/env/all.sh, add env directory README, and switch purge entity python resolution to scripts/meta/env/python.sh
2026-03-20 22:19:50 +01:00

48 lines
985 B
Bash

#!/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