#!/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 "$@"