#!/usr/bin/env bash set -euo pipefail WORKSPACE_DIR="${WORKSPACE_DIR:-/workspace}" VENV_PATH="${VENV_PATH:-$WORKSPACE_DIR/.venv}" REQUIREMENTS_FILE="${REQUIREMENTS_FILE:-$WORKSPACE_DIR/requirements.txt}" # Resolve current user's home robustly (works for root and non-root users). USER_HOME="${HOME:-}" if [ -z "$USER_HOME" ] && command -v getent >/dev/null 2>&1; then USER_HOME="$(getent passwd "$(id -un)" | cut -d: -f6)" fi if [ -z "$USER_HOME" ]; then USER_HOME="/root" fi BASHRC_PATH="${BASHRC_PATH:-$USER_HOME/.bashrc}" # Ak venv neexistuje, vytvor ho a priprav pip if [ ! -d "$VENV_PATH" ]; then echo "Virtuálne prostredie neexistuje – vytváram..." python -m venv "$VENV_PATH" else echo "Používam existujúce virtuálne prostredie..." fi echo "Aktivujem virtuálne prostredie..." # shellcheck disable=SC1090 source "$VENV_PATH/bin/activate" echo "Aktualizujem pip a základné nástroje..." python -m pip install --upgrade pip setuptools wheel # Inštalácia závislostí, ak existuje requirements.txt if [ -f "$REQUIREMENTS_FILE" ]; then echo "Inštalujem závislosti z requirements.txt..." python -m pip install -r "$REQUIREMENTS_FILE" else echo "requirements.txt nenájdený – preskakujem inštaláciu závislostí." fi # Ak sa terminál otvorí skôr, než Python extension stihne auto-aktiváciu, # zabezpečíme aktiváciu aj cez shell init. ACTIVATE_LINE="[ -f \"$VENV_PATH/bin/activate\" ] && source \"$VENV_PATH/bin/activate\"" touch "$BASHRC_PATH" if ! grep -Fq "$ACTIVATE_LINE" "$BASHRC_PATH"; then echo "$ACTIVATE_LINE" >> "$BASHRC_PATH" fi