28 lines
608 B
Bash
Executable File
28 lines
608 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
TARGET_VERSION="${1:-3.11}"
|
|
IFS="." read -r PYTHON_MAJOR PYTHON_MINOR _ <<< "${TARGET_VERSION}"
|
|
|
|
if [[ -n "${PYTHON_MINOR:-}" ]]; then
|
|
PYTHON_BIN="python${PYTHON_MAJOR}.${PYTHON_MINOR}"
|
|
else
|
|
PYTHON_BIN="python${PYTHON_MAJOR}"
|
|
fi
|
|
|
|
if command -v "${PYTHON_BIN}" >/dev/null 2>&1; then
|
|
command -v "${PYTHON_BIN}"
|
|
exit 0
|
|
fi
|
|
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
|
|
apt-get update
|
|
apt-get install -y software-properties-common
|
|
add-apt-repository -y ppa:deadsnakes/ppa
|
|
apt-get update
|
|
apt-get install -y "${PYTHON_BIN}" "${PYTHON_BIN}-venv"
|
|
|
|
command -v "${PYTHON_BIN}"
|