veza/veza-backend-api/scripts/cleanup-go.sh
2025-12-03 20:29:37 +01:00

97 lines
No EOL
2.4 KiB
Bash

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