60 lines
2.6 KiB
Bash
Executable file
60 lines
2.6 KiB
Bash
Executable file
#!/bin/bash
|
|
# Script pour corriger automatiquement les erreurs UUID résiduelles
|
|
# Basé sur les erreurs de compilation identifiées
|
|
# Date: 2024-11-27
|
|
|
|
set -e
|
|
|
|
BACKEND_DIR="veza-backend-api/internal"
|
|
|
|
echo "🔧 Correction erreurs UUID résiduelles"
|
|
echo "======================================"
|
|
|
|
# 1. Corriger initialisations UUID
|
|
echo "🔄 Correction initialisations UUID (0 → uuid.Nil)..."
|
|
find "$BACKEND_DIR" -name "*.go" -exec sed -i 's/\(UserID:\s*\)0\s*,/\1uuid.Nil,/g' {} \;
|
|
find "$BACKEND_DIR" -name "*.go" -exec sed -i 's/\(OwnerID:\s*\)0\s*,/\1uuid.Nil,/g' {} \;
|
|
find "$BACKEND_DIR" -name "*.go" -exec sed -i 's/\(TrackID:\s*\)0\s*,/\1uuid.Nil,/g' {} \;
|
|
|
|
# 2. Corriger comparaisons UUID
|
|
echo "🔄 Correction comparaisons (== 0 → == uuid.Nil)..."
|
|
find "$BACKEND_DIR" -name "*.go" -exec sed -i 's/\([a-zA-Z_][a-zA-Z0-9_]*\)\.ID\s*==\s*0/\1.ID == uuid.Nil/g' {} \;
|
|
find "$BACKEND_DIR" -name "*.go" -exec sed -i 's/\([a-zA-Z_][a-zA-Z0-9_]*\)\.UserID\s*==\s*0/\1.UserID == uuid.Nil/g' {} \;
|
|
|
|
# 3. Corriger assignations
|
|
echo "🔄 Correction assignations (= 0 → = uuid.Nil)..."
|
|
find "$BACKEND_DIR" -name "*.go" -exec sed -i 's/\([a-zA-Z_][a-zA-Z0-9_]*ID\)\s*:=\s*0$/\1 := uuid.Nil/g' {} \;
|
|
|
|
# 4. Corriger time.Now().Unix() → uuid.New()
|
|
echo "🔄 Correction génération ID (Unix() → uuid.New())..."
|
|
find "$BACKEND_DIR" -name "*.go" -exec sed -i 's/time\.Now()\.Unix()/uuid.New()/g' {} \;
|
|
|
|
# 5. Corriger zap logs pour IDs qui sont maintenant UUID
|
|
echo "🔄 Correction logs zap pour struct fields..."
|
|
find "$BACKEND_DIR" -name "*.go" -exec sed -i \
|
|
's/zap\.Int64("\([a-z_]*\)_id",\s*\([a-zA-Z_][a-zA-Z0-9_]*\)\.ID)/zap.String("\1_id", \2.ID.String())/g' {} \;
|
|
|
|
# 6. Corriger conversions int64() vers UUID
|
|
echo "🔄 Suppression int64() casts sur UUID..."
|
|
find "$BACKEND_DIR" -name "*.go" -exec sed -i 's/int64(\([a-zA-Z_][a-zA-Z0-9_]*\)\.ID)/\1.ID/g' {} \;
|
|
|
|
# 7. Ajouter imports uuid si manquants
|
|
echo "🔄 Ajout imports uuid.UUID..."
|
|
for file in $(find "$BACKEND_DIR" -name "*.go"); do
|
|
# Si le fichier utilise uuid.UUID mais n'importe pas le package
|
|
if grep -q "uuid\.UUID\|uuid\.New\|uuid\.Nil\|uuid\.Parse" "$file" && ! grep -q '"github.com/google/uuid"' "$file"; then
|
|
# Ajouter import
|
|
sed -i '/^import (/a\ "github.com/google/uuid"' "$file" 2>/dev/null || \
|
|
sed -i 's|^\(import.*"fmt"\)$|\1\n\t"github.com/google/uuid"|' "$file" 2>/dev/null || true
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "======================================"
|
|
echo "✅ Corrections automatiques terminées"
|
|
echo ""
|
|
echo "📝 Prochaines étapes:"
|
|
echo "1. go build ./..."
|
|
echo "2. Corriger manuellement erreurs restantes"
|
|
echo "3. go test ./..."
|
|
|