#!/bin/bash # ============================================ # Script de vérification - Implémentation complète # ============================================ echo "🔍 VÉRIFICATION - Système de Mise à Jour Docker" echo "================================================" echo "" PROJECT_DIR="/home/innotex/Documents/Projet/innotexboard" DOCKER_DIR="/home/innotex/Docker" # Compteurs TOTAL=0 FOUND=0 check_file() { local file=$1 local description=$2 TOTAL=$((TOTAL + 1)) if [ -f "$file" ]; then echo "✅ $description" FOUND=$((FOUND + 1)) return 0 else echo "❌ $description - MANQUANT" return 1 fi } check_dir() { local dir=$1 local description=$2 TOTAL=$((TOTAL + 1)) if [ -d "$dir" ]; then echo "✅ $description" FOUND=$((FOUND + 1)) return 0 else echo "❌ $description - MANQUANT" return 1 fi } # ============================================ # 1. Vérifier les services Python # ============================================ echo "📦 Services Python" echo "===================" check_file "$PROJECT_DIR/backend/app/services/update_service.py" "update_service.py (275 lignes)" check_file "$PROJECT_DIR/backend/app/services/compose_manager.py" "compose_manager.py (185 lignes)" echo "" # ============================================ # 2. Vérifier les endpoints # ============================================ echo "🔌 Endpoints API" echo "================" check_file "$PROJECT_DIR/backend/app/api/endpoints/docker.py" "docker.py (endpoints mis à jour)" check_file "$PROJECT_DIR/backend/app/api/endpoints/compose.py" "compose.py (7 endpoints)" check_file "$PROJECT_DIR/backend/app/api/routes.py" "routes.py (mis à jour)" echo "" # ============================================ # 3. Vérifier les docker-compose # ============================================ echo "🐳 Docker Compose References" echo "============================" check_dir "$DOCKER_DIR" "/home/innotex/Docker" COMPOSE_COUNT=$(find "$DOCKER_DIR" -name "docker-compose.*.yml" 2>/dev/null | wc -l) echo " Nombre de docker-compose: $COMPOSE_COUNT/11" check_file "$DOCKER_DIR/docker-compose.portainer.yml" " - Portainer" check_file "$DOCKER_DIR/docker-compose.sonarr.yml" " - Sonarr" check_file "$DOCKER_DIR/docker-compose.radarr.yml" " - Radarr" check_file "$DOCKER_DIR/docker-compose.qbittorrent.yml" " - qBittorrent" check_file "$DOCKER_DIR/docker-compose.jellyfin.yml" " - Jellyfin" check_file "$DOCKER_DIR/docker-compose.plex.yml" " - Plex" check_file "$DOCKER_DIR/docker-compose.nextcloud.yml" " - Nextcloud" check_file "$DOCKER_DIR/docker-compose.nginx.yml" " - Nginx" check_file "$DOCKER_DIR/docker-compose.pihole.yml" " - Pi-hole" check_file "$DOCKER_DIR/docker-compose.homeassistant.yml" " - Home Assistant" check_file "$DOCKER_DIR/docker-compose.watchtower.yml" " - Watchtower" check_file "$DOCKER_DIR/docker-compose.monitoring.yml" " - Monitoring" echo "" # ============================================ # 4. Vérifier la documentation # ============================================ echo "📚 Documentation" echo "================" check_file "$PROJECT_DIR/DOCKER_UPDATE_SYSTEM.md" "DOCKER_UPDATE_SYSTEM.md" check_file "$PROJECT_DIR/DOCKER_UPDATES_COMPLETE.md" "DOCKER_UPDATES_COMPLETE.md" check_file "$PROJECT_DIR/DOCKER_EXAMPLES.sh" "DOCKER_EXAMPLES.sh" check_file "$PROJECT_DIR/IMPLEMENTATION_SUMMARY.txt" "IMPLEMENTATION_SUMMARY.txt" check_file "$DOCKER_DIR/README.md" "/Docker/README.md" check_file "$DOCKER_DIR/docker-compose-registry.json" "docker-compose-registry.json" echo "" # ============================================ # 5. Vérifier les tests # ============================================ echo "🧪 Scripts de Test" echo "==================" check_file "$PROJECT_DIR/test_docker_updates.sh" "test_docker_updates.sh" echo "" # ============================================ # 6. Vérifier la syntaxe Python # ============================================ echo "✔️ Vérification Syntaxe Python" echo "================================" python3 -m py_compile "$PROJECT_DIR/backend/app/services/update_service.py" 2>/dev/null if [ $? -eq 0 ]; then echo "✅ update_service.py - Syntaxe OK" FOUND=$((FOUND + 1)) else echo "❌ update_service.py - Erreur de syntaxe" fi TOTAL=$((TOTAL + 1)) python3 -m py_compile "$PROJECT_DIR/backend/app/services/compose_manager.py" 2>/dev/null if [ $? -eq 0 ]; then echo "✅ compose_manager.py - Syntaxe OK" FOUND=$((FOUND + 1)) else echo "❌ compose_manager.py - Erreur de syntaxe" fi TOTAL=$((TOTAL + 1)) python3 -m py_compile "$PROJECT_DIR/backend/app/api/endpoints/compose.py" 2>/dev/null if [ $? -eq 0 ]; then echo "✅ compose.py - Syntaxe OK" FOUND=$((FOUND + 1)) else echo "❌ compose.py - Erreur de syntaxe" fi TOTAL=$((TOTAL + 1)) echo "" # ============================================ # 7. Statistiques # ============================================ echo "📊 Statistiques" echo "===============" PYTHON_LINES=$(wc -l "$PROJECT_DIR"/backend/app/services/update_service.py "$PROJECT_DIR"/backend/app/services/compose_manager.py "$PROJECT_DIR"/backend/app/api/endpoints/compose.py 2>/dev/null | tail -1 | awk '{print $1}') echo " Lignes de code Python: $PYTHON_LINES" DOC_LINES=$(wc -l "$PROJECT_DIR"/DOCKER_UPDATE_SYSTEM.md "$PROJECT_DIR"/DOCKER_UPDATES_COMPLETE.md "$DOCKER_DIR"/README.md 2>/dev/null | tail -1 | awk '{print $1}') echo " Lignes de documentation: $DOC_LINES" TOTAL_FILES=$(find "$DOCKER_DIR" -type f 2>/dev/null | wc -l) echo " Fichiers dans /home/innotex/Docker: $TOTAL_FILES" echo "" # ============================================ # 8. Résumé final # ============================================ echo "📋 RÉSUMÉ FINAL" echo "===============" PERCENTAGE=$((FOUND * 100 / TOTAL)) echo "Items vérifiés: $FOUND/$TOTAL ($PERCENTAGE%)" echo "" if [ $PERCENTAGE -eq 100 ]; then echo "✅ ✅ ✅ IMPLÉMENTATION COMPLÈTE ✅ ✅ ✅" echo "" echo "Tout est prêt pour:" echo " ✓ Tester l'API" echo " ✓ Mettre à jour les images" echo " ✓ Gérer les docker-compose" echo " ✓ Consulter la documentation" exit 0 else echo "⚠️ Implémentation incomplète" echo "Il manque $((TOTAL - FOUND)) éléments" exit 1 fi