veza/apps/web/scripts/start_lab.sh

71 lines
2.4 KiB
Bash
Executable file

#!/bin/bash
# Script de démarrage du frontend Veza en environnement lab avec vraie BDD
# Usage: ./scripts/start_lab.sh
set -e
# Couleurs
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'
SCRIPT_DIR=$(dirname "$0")
echo -e "${GREEN}🚀 Démarrage du frontend Veza en mode Lab${NC}"
# Vérifier que nous sommes dans apps/web
if [ ! -f "package.json" ]; then
echo -e "${RED}❌ Erreur: Ce script doit être exécuté depuis le répertoire apps/web${NC}"
exit 1
fi
# 1. Chargement de .env.lab si présent
if [ -f .env.lab ]; then
echo -e "${YELLOW}📄 Chargement de la configuration depuis .env.lab...${NC}"
export $(grep -v '^#' .env.lab | xargs)
fi
# 2. Valeurs par défaut (si non définies dans .env.lab)
export VITE_API_URL="${VITE_API_URL:-http://localhost:8080/api/v1}"
export VITE_WS_URL="${VITE_WS_URL:-ws://localhost:8081}"
export VITE_STREAM_URL="${VITE_STREAM_URL:-http://localhost:8082}"
export VITE_USE_MSW="${VITE_USE_MSW:-0}"
export VITE_APP_NAME="${VITE_APP_NAME:-Veza Lab}"
echo -e "${GREEN}📋 Configuration active :${NC}"
echo -e " API URL : $VITE_API_URL"
echo -e " WS URL : $VITE_WS_URL"
echo -e " Stream URL: $VITE_STREAM_URL"
echo -e " Mode MSW : $VITE_USE_MSW"
echo ""
# 3. Vérification des backends
echo -e "${YELLOW}🔍 Lancement du diagnostic backend...${NC}"
# On appelle le script frère check_backend.sh
if [ -f "$SCRIPT_DIR/check_backend.sh" ]; then
bash "$SCRIPT_DIR/check_backend.sh" || {
echo -e "${RED}❌ Échec de la vérification des backends.${NC}"
echo -e "${YELLOW} Le frontend risque de ne pas fonctionner correctement.${NC}"
# On ne bloque pas forcément le start (ou on demande confirmation),
# mais ici le check_backend.sh exit 1 si critique.
# Si on veut forcer l'arrêt : exit 1
# L'énoncé dit : "check_backend.sh avant de lancer Vite"
exit 1
}
else
echo -e "${YELLOW}⚠️ Script check_backend.sh introuvable, pas de vérification préalable.${NC}"
fi
# 4. Démarrage
echo ""
echo -e "${GREEN}🌐 Démarrage de Vite...${NC}"
if [ ! -d "node_modules" ]; then
npm install
fi
# On passe les vars explicitement au cas où vite ne les chope pas par l'export shell (normalement si)
# Mais Vite lit aussi les .env donc attention aux conflits.
# L'export shell a priorité sur .env files pour process.env, mais Vite config client...
# Vite remplace import.meta.env par les valeurs.
npm run dev