97 lines
No EOL
2.4 KiB
Bash
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é !" |