You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
803 B
Bash
32 lines
803 B
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
VENV_DIR="${1:-.venv}"
|
|
|
|
if ! command -v python3 >/dev/null 2>&1; then
|
|
echo "[setup] python3 not found. Installing..."
|
|
sudo apt-get update
|
|
sudo apt-get install -y python3 python3-venv python3-pip
|
|
fi
|
|
|
|
if ! dpkg -s python3-venv >/dev/null 2>&1; then
|
|
echo "[setup] Installing python3-venv..."
|
|
sudo apt-get update
|
|
sudo apt-get install -y python3-venv python3-pip
|
|
fi
|
|
|
|
echo "[setup] Creating virtual environment: ${VENV_DIR}"
|
|
python3 -m venv "${VENV_DIR}"
|
|
|
|
PYTHON_BIN="${VENV_DIR}/bin/python"
|
|
|
|
echo "[setup] Upgrading pip"
|
|
"${PYTHON_BIN}" -m pip install --upgrade pip
|
|
|
|
echo "[setup] Installing required Python packages"
|
|
"${PYTHON_BIN}" -m pip install pytest
|
|
|
|
echo "[setup] Done"
|
|
echo "Activate: source ${VENV_DIR}/bin/activate"
|
|
echo "Run tests: pytest -q"
|