159 lines
No EOL
4 KiB
Bash
Executable file
159 lines
No EOL
4 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Veza Full Stack Application Stop Script
|
|
# Version: 1.0.0
|
|
|
|
set -e
|
|
|
|
echo "🛑 Arrêt de l'application Veza..."
|
|
|
|
# Couleurs pour l'affichage
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Fonction pour afficher les messages
|
|
print_status() {
|
|
echo -e "${BLUE}[INFO]${NC} $1"
|
|
}
|
|
|
|
print_success() {
|
|
echo -e "${GREEN}[SUCCESS]${NC} $1"
|
|
}
|
|
|
|
print_warning() {
|
|
echo -e "${YELLOW}[WARNING]${NC} $1"
|
|
}
|
|
|
|
# Arrêter les processus locaux
|
|
stop_local_processes() {
|
|
print_status "Arrêt des processus locaux..."
|
|
|
|
# Arrêter les processus par PID si les fichiers existent
|
|
if [ -f "logs/backend.pid" ]; then
|
|
BACKEND_PID=$(cat logs/backend.pid)
|
|
kill $BACKEND_PID 2>/dev/null || true
|
|
rm -f logs/backend.pid
|
|
print_success "Backend arrêté"
|
|
fi
|
|
|
|
if [ -f "logs/frontend.pid" ]; then
|
|
FRONTEND_PID=$(cat logs/frontend.pid)
|
|
kill $FRONTEND_PID 2>/dev/null || true
|
|
rm -f logs/frontend.pid
|
|
print_success "Frontend arrêté"
|
|
fi
|
|
|
|
if [ -f "logs/chat-server.pid" ]; then
|
|
CHAT_PID=$(cat logs/chat-server.pid)
|
|
kill $CHAT_PID 2>/dev/null || true
|
|
rm -f logs/chat-server.pid
|
|
print_success "Chat server arrêté"
|
|
fi
|
|
|
|
if [ -f "logs/desktop.pid" ]; then
|
|
DESKTOP_PID=$(cat logs/desktop.pid)
|
|
kill $DESKTOP_PID 2>/dev/null || true
|
|
rm -f logs/desktop.pid
|
|
print_success "Desktop app arrêtée"
|
|
fi
|
|
|
|
# Arrêter les processus par nom
|
|
pkill -f "server" 2>/dev/null || true
|
|
pkill -f "vite" 2>/dev/null || true
|
|
pkill -f "npm run dev" 2>/dev/null || true
|
|
pkill -f "electron" 2>/dev/null || true
|
|
pkill -f "cargo" 2>/dev/null || true
|
|
|
|
print_success "Processus locaux arrêtés"
|
|
}
|
|
|
|
# Arrêter les conteneurs Docker
|
|
stop_docker_containers() {
|
|
print_status "Arrêt des conteneurs Docker..."
|
|
|
|
# Arrêter les conteneurs de développement
|
|
docker-compose -f veza-backend-api/docker-compose.local.yml down 2>/dev/null || true
|
|
|
|
# Arrêter les conteneurs de production
|
|
docker-compose -f docker-compose.production.yml down 2>/dev/null || true
|
|
|
|
# Arrêter tous les conteneurs Veza
|
|
docker ps -q --filter "name=veza" | xargs -r docker stop 2>/dev/null || true
|
|
|
|
print_success "Conteneurs Docker arrêtés"
|
|
}
|
|
|
|
# Nettoyer les ports
|
|
cleanup_ports() {
|
|
print_status "Nettoyage des ports..."
|
|
|
|
# Vérifier et nettoyer les ports utilisés
|
|
for port in 8080 5176 8081 5432 6379; do
|
|
if lsof -i :$port > /dev/null 2>&1; then
|
|
print_warning "Port $port encore utilisé, tentative de nettoyage..."
|
|
lsof -ti :$port | xargs -r kill -9 2>/dev/null || true
|
|
fi
|
|
done
|
|
|
|
print_success "Ports nettoyés"
|
|
}
|
|
|
|
# Afficher le statut final
|
|
show_final_status() {
|
|
echo ""
|
|
echo "📊 Statut final:"
|
|
echo "=================="
|
|
|
|
# Vérifier les processus
|
|
if pgrep -f "server" > /dev/null; then
|
|
echo -e "❌ Backend: Encore en cours"
|
|
else
|
|
echo -e "✅ Backend: Arrêté"
|
|
fi
|
|
|
|
if pgrep -f "vite" > /dev/null; then
|
|
echo -e "❌ Frontend: Encore en cours"
|
|
else
|
|
echo -e "✅ Frontend: Arrêté"
|
|
fi
|
|
|
|
if pgrep -f "electron" > /dev/null; then
|
|
echo -e "❌ Desktop: Encore en cours"
|
|
else
|
|
echo -e "✅ Desktop: Arrêté"
|
|
fi
|
|
|
|
# Vérifier les conteneurs Docker
|
|
if docker ps | grep -q "veza"; then
|
|
echo -e "❌ Conteneurs Docker: Encore en cours"
|
|
else
|
|
echo -e "✅ Conteneurs Docker: Arrêtés"
|
|
fi
|
|
|
|
echo ""
|
|
}
|
|
|
|
# Fonction principale
|
|
main() {
|
|
echo "🎵 Arrêt de l'application Veza"
|
|
echo "================================"
|
|
|
|
# Arrêter les services
|
|
stop_local_processes
|
|
stop_docker_containers
|
|
cleanup_ports
|
|
|
|
# Afficher le statut final
|
|
show_final_status
|
|
|
|
echo "🎉 Application Veza arrêtée avec succès!"
|
|
echo ""
|
|
echo "💡 Pour redémarrer: ./start-veza.sh"
|
|
echo ""
|
|
}
|
|
|
|
# Exécuter la fonction principale
|
|
main "$@" |