-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstart-dev.sh
More file actions
71 lines (60 loc) · 2.1 KB
/
Copy pathstart-dev.sh
File metadata and controls
71 lines (60 loc) · 2.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/bin/bash
# Utilisation du .env pour configurer les variables d'environnement
if [ -f ".env" ]; then
while IFS= read -r line || [ -n "$line" ]; do
if [[ ! "$line" =~ ^# ]] && [[ ! -z "$line" ]]; then
key=$(echo "$line" | cut -d'=' -f1 | xargs)
value=$(echo "$line" | cut -d'=' -f2- | xargs | sed -e 's/^"//' -e 's/"$//' -e "s/^'//" -e "s/'$//")
if [ "$key" = "SPRING_DATASOURCE_URL" ] && [[ "$value" == *//*@* ]]; then
prefix="${value%%//*}//"
suffix="${value##*@}"
value="${prefix}${suffix}"
fi
export "$key=$value"
fi
done < .env
fi
# Vérification des variables d'environnement
if [ -z "$GITHUB_CLIENT_ID" ] || [ -z "$GITHUB_CLIENT_SECRET" ]; then
echo "Erreur : GITHUB_CLIENT_ID ou GITHUB_CLIENT_SECRET n'est pas défini."
exit 1
fi
echo "Démarrage de l'écosystème Mémoire de Code..."
# Vérification des dépendances
if ! command -v mvn &> /dev/null; then
echo "Erreur : Maven n'est pas installé ou pas dans le PATH."
exit 1
fi
if ! command -v npm &> /dev/null; then
echo "Erreur : npm n'est pas installé ou pas dans le PATH."
exit 1
fi
# Vérification du dossier des dépendances
if [ ! -d "backend/target" ]; then
echo "Compilation du backend..."
cd backend && ./mvnw clean package
if [ $? -ne 0 ]; then
echo "La compilation du backend a échoué."
exit 1
fi
cd ..
fi
if [ ! -d "frontend/node_modules" ]; then
echo "Installation des dépendances frontend..."
cd frontend && npm install
if [ $? -ne 0 ]; then
echo "L'installation des dépendances frontend a échoué."
exit 1
fi
cd ..
fi
# Lancement du Backend en arrière-plan
cd backend && ./mvnw spring-boot:run &
BACKEND_PID=$!
# Lancement du Frontend en arrière-plan
cd ../frontend && npm run dev &
FRONTEND_PID=$!
# Piège l'interruption Ctrl+C pour couper les deux services proprement
trap "echo 'Arrêt des services en cours...'; kill $BACKEND_PID $FRONTEND_PID; exit" INT
# Maintient le script actif et affiche les logs combinés
wait