Small things because fuck sd cards
This commit is contained in:
+17
-12
@@ -3,6 +3,7 @@ set -eu
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
|
||||
REPO_ROOT=$(dirname -- "$SCRIPT_DIR")
|
||||
VENV_DIR="$SCRIPT_DIR/venv"
|
||||
PYTHON_BIN="${PYTHON_BIN:-python3}"
|
||||
PYTHON_SCRIPT="${1:-$SCRIPT_DIR/main.py}"
|
||||
REQUIREMENTS_FILE="$SCRIPT_DIR/requirements.txt"
|
||||
@@ -19,24 +20,28 @@ cd "$SCRIPT_DIR"
|
||||
|
||||
# 2. On lance Docker en arrière-plan
|
||||
echo "Démarrage des conteneurs Docker..."
|
||||
# docker compose pull
|
||||
docker compose up -d --remove-orphans
|
||||
|
||||
# 3. Installation des dépendances (sans '--user' si on est déjà root sous systemd)
|
||||
# 3. Gestion propre de l'environnement virtuel Python (contourne PEP 668)
|
||||
if [ ! -d "$VENV_DIR" ]; then
|
||||
echo "Création de l'environnement virtuel Python..."
|
||||
"$PYTHON_BIN" -m venv "$VENV_DIR"
|
||||
fi
|
||||
|
||||
# Utiliser le pip/python du venv
|
||||
VENV_PYTHON="$VENV_DIR/bin/python"
|
||||
VENV_PIP="$VENV_DIR/bin/pip"
|
||||
|
||||
if [ -f "$REQUIREMENTS_FILE" ]; then
|
||||
echo "Vérification des dépendances Python..."
|
||||
if [ "$(id -u)" -eq 0 ]; then
|
||||
"$PYTHON_BIN" -m pip install -r "$REQUIREMENTS_FILE"
|
||||
else
|
||||
"$PYTHON_BIN" -m pip install --user -r "$REQUIREMENTS_FILE"
|
||||
fi
|
||||
echo "Vérification et installation des dépendances dans le venv..."
|
||||
"$VENV_PIP" install --upgrade pip >/dev/null 2>&1 || true
|
||||
"$VENV_PIP" install -r "$REQUIREMENTS_FILE"
|
||||
fi
|
||||
|
||||
# 4. Sécurité anti-conflit : On vérifie si Docker n'a pas verrouillé le port USB de la LA66
|
||||
PORT="/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0"
|
||||
if [ -e "$PORT" ]; then
|
||||
echo "Vérification de la disponibilité du port série..."
|
||||
# Si le port est occupé, on force sa libération en tuant le processus docker/screen persistant
|
||||
if lsof "$PORT" >/dev/null 2>&1; then
|
||||
echo "Le port série est occupé ! Libération en cours..."
|
||||
fuser -k "$PORT" || true
|
||||
@@ -44,7 +49,7 @@ if [ -e "$PORT" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
# 5. Lancement propre du script Python
|
||||
# 5. Lancement propre du script Python via le venv
|
||||
echo "Launching Python script: $PYTHON_SCRIPT"
|
||||
cd "$REPO_ROOT"
|
||||
exec "$PYTHON_BIN" "$PYTHON_SCRIPT"
|
||||
cd "$SCRIPT_DIR"
|
||||
exec "$VENV_PYTHON" "$PYTHON_SCRIPT"
|
||||
Reference in New Issue
Block a user