#!/bin/bash # Script de nettoyage du code Go # Ce script nettoie les imports non utilisés, formate le code et vérifie la qualité set -e echo "🧹 Nettoyage du code Go..." # Couleurs pour les messages RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # Fonction pour afficher les messages colorés print_status() { echo -e "${GREEN}✅ $1${NC}" } print_warning() { echo -e "${YELLOW}⚠️ $1${NC}" } print_error() { echo -e "${RED}❌ $1${NC}" } # Vérifier que nous sommes dans le bon répertoire if [ ! -f "go.mod" ]; then print_error "go.mod non trouvé. Exécutez ce script depuis la racine du projet." exit 1 fi # 1. Nettoyer les imports non utilisés print_status "Nettoyage des imports non utilisés..." if command -v goimports &> /dev/null; then find . -name "*.go" -not -path "./vendor/*" -not -path "./.git/*" | xargs goimports -w print_status "Imports nettoyés avec goimports" else print_warning "goimports non installé. Installation..." go install golang.org/x/tools/cmd/goimports@latest find . -name "*.go" -not -path "./vendor/*" -not -path "./.git/*" | xargs goimports -w print_status "Imports nettoyés avec goimports" fi # 2. Formater le code print_status "Formatage du code..." go fmt ./... print_status "Code formaté" # 3. Vérifier avec go vet print_status "Vérification avec go vet..." if go vet ./...; then print_status "go vet: Aucun problème détecté" else print_warning "go vet: Problèmes détectés" fi # 4. Vérifier les modules print_status "Vérification des modules..." go mod tidy print_status "Modules nettoyés" # 5. Vérifier les dépendances print_status "Vérification des dépendances..." go mod verify print_status "Dépendances vérifiées" # 6. Compiler le projet print_status "Compilation du projet..." if go build ./...; then print_status "Compilation réussie" else print_error "Erreurs de compilation détectées" exit 1 fi # 7. Exécuter les tests print_status "Exécution des tests..." if go test ./... -v; then print_status "Tous les tests passent" else print_warning "Certains tests échouent" fi # 8. Résumé echo "" echo "🎉 Nettoyage terminé !" echo "" echo "📊 Résumé:" echo " - Imports nettoyés" echo " - Code formaté" echo " - Modules vérifiés" echo " - Tests exécutés" echo "" echo "✨ Votre code Go est maintenant propre et optimisé !"