1
0

Check if venv is valid before continuing with the script

This commit is contained in:
2026-05-06 08:08:25 +02:00
parent 27625c5743
commit 6444f63862
@@ -50,6 +50,28 @@ fi
ANSIBLE_ROOT="{{ .chezmoi.workingTree }}/setup-script" ANSIBLE_ROOT="{{ .chezmoi.workingTree }}/setup-script"
# If a venv exists, check if it's still valid
if [ -d "$ANSIBLE_ROOT/.venv" ]; then
VENV_PYTHON="$ANSIBLE_ROOT/.venv/bin/python3"
SYS_PYTHON_VERSION=$(python3 -c "import sys; print(sys.version_info[:2])")
VENV_OK=true
# Check if the Python binary inside the venv is functional
if ! "$VENV_PYTHON" --version >/dev/null 2>&1; then
echo -e "\e[1;33mVenv Python binary is broken.\e[0m"
VENV_OK=false
# Check if the venv Python version matches the system Python version
elif [ "$("$VENV_PYTHON" -c "import sys; print(sys.version_info[:2])")" != "$SYS_PYTHON_VERSION" ]; then
echo -e "\e[1;33mVenv Python version mismatch with system Python.\e[0m"
VENV_OK=false
fi
if [ "$VENV_OK" = false ]; then
echo -e "\e[1;34mDeleting the invalid venv...\e[0m"
rm -rf "$ANSIBLE_ROOT/.venv"
fi
fi
# Check if there is a venv in "setup-script/" # Check if there is a venv in "setup-script/"
if [ ! -d "$ANSIBLE_ROOT/.venv" ]; then if [ ! -d "$ANSIBLE_ROOT/.venv" ]; then
echo -e "\e[1;34mNo venv found in "$ANSIBLE_ROOT". Creating one...\e[0m" echo -e "\e[1;34mNo venv found in "$ANSIBLE_ROOT". Creating one...\e[0m"