227 lines
8.9 KiB
Bash
227 lines
8.9 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# Generate error summary from discovery logs
|
||
|
|
|
||
|
|
if [ -z "$1" ]; then
|
||
|
|
DATE=$(date +%Y%m%d-%H%M%S)
|
||
|
|
else
|
||
|
|
DATE=$1
|
||
|
|
fi
|
||
|
|
|
||
|
|
OUTPUT="docs/ORIGIN/error-logs/summary-${DATE}.md"
|
||
|
|
|
||
|
|
echo "# 📊 Rapport de Découverte d'Erreurs - Projet Veza" > $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
echo "**Date de génération** : $(date '+%Y-%m-%d %H:%M:%S')" >> $OUTPUT
|
||
|
|
echo "**ID du rapport** : ${DATE}" >> $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
echo "---" >> $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
|
||
|
|
# ===========================================
|
||
|
|
# FONCTION DE COMPTAGE D'ERREURS
|
||
|
|
# ===========================================
|
||
|
|
count_errors() {
|
||
|
|
local file=$1
|
||
|
|
if [ -f "$file" ]; then
|
||
|
|
grep -i -c "error\|failed\|fatal" "$file" 2>/dev/null || echo "0"
|
||
|
|
else
|
||
|
|
echo "0"
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
count_warnings() {
|
||
|
|
local file=$1
|
||
|
|
if [ -f "$file" ]; then
|
||
|
|
grep -i -c "warning\|warn" "$file" 2>/dev/null || echo "0"
|
||
|
|
else
|
||
|
|
echo "0"
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
# ===========================================
|
||
|
|
# STATISTIQUES GLOBALES
|
||
|
|
# ===========================================
|
||
|
|
echo "## 📈 Statistiques Globales" >> $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
|
||
|
|
BACKEND_BUILD_ERRORS=$(count_errors "docs/ORIGIN/error-logs/backend-build-${DATE}.log")
|
||
|
|
BACKEND_TEST_ERRORS=$(count_errors "docs/ORIGIN/error-logs/backend-tests-${DATE}.log")
|
||
|
|
BACKEND_VET_ERRORS=$(count_errors "docs/ORIGIN/error-logs/backend-vet-${DATE}.log")
|
||
|
|
|
||
|
|
FRONTEND_BUILD_ERRORS=$(count_errors "docs/ORIGIN/error-logs/frontend-build-${DATE}.log")
|
||
|
|
FRONTEND_TEST_ERRORS=$(count_errors "docs/ORIGIN/error-logs/frontend-tests-${DATE}.log")
|
||
|
|
FRONTEND_LINT_ERRORS=$(count_errors "docs/ORIGIN/error-logs/frontend-lint-${DATE}.log")
|
||
|
|
FRONTEND_TSC_ERRORS=$(count_errors "docs/ORIGIN/error-logs/frontend-tsc-${DATE}.log")
|
||
|
|
|
||
|
|
# Remove any newlines/spaces from counts
|
||
|
|
BACKEND_BUILD_ERRORS=$(echo "$BACKEND_BUILD_ERRORS" | tr -d '\n' | tr -d ' ')
|
||
|
|
BACKEND_TEST_ERRORS=$(echo "$BACKEND_TEST_ERRORS" | tr -d '\n' | tr -d ' ')
|
||
|
|
BACKEND_VET_ERRORS=$(echo "$BACKEND_VET_ERRORS" | tr -d '\n' | tr -d ' ')
|
||
|
|
FRONTEND_BUILD_ERRORS=$(echo "$FRONTEND_BUILD_ERRORS" | tr -d '\n' | tr -d ' ')
|
||
|
|
FRONTEND_TEST_ERRORS=$(echo "$FRONTEND_TEST_ERRORS" | tr -d '\n' | tr -d ' ')
|
||
|
|
FRONTEND_LINT_ERRORS=$(echo "$FRONTEND_LINT_ERRORS" | tr -d '\n' | tr -d ' ')
|
||
|
|
FRONTEND_TSC_ERRORS=$(echo "$FRONTEND_TSC_ERRORS" | tr -d '\n' | tr -d ' ')
|
||
|
|
|
||
|
|
# Default to 0 if empty
|
||
|
|
BACKEND_BUILD_ERRORS=${BACKEND_BUILD_ERRORS:-0}
|
||
|
|
BACKEND_TEST_ERRORS=${BACKEND_TEST_ERRORS:-0}
|
||
|
|
BACKEND_VET_ERRORS=${BACKEND_VET_ERRORS:-0}
|
||
|
|
FRONTEND_BUILD_ERRORS=${FRONTEND_BUILD_ERRORS:-0}
|
||
|
|
FRONTEND_TEST_ERRORS=${FRONTEND_TEST_ERRORS:-0}
|
||
|
|
FRONTEND_LINT_ERRORS=${FRONTEND_LINT_ERRORS:-0}
|
||
|
|
FRONTEND_TSC_ERRORS=${FRONTEND_TSC_ERRORS:-0}
|
||
|
|
|
||
|
|
TOTAL_ERRORS=$((BACKEND_BUILD_ERRORS + BACKEND_TEST_ERRORS + BACKEND_VET_ERRORS + FRONTEND_BUILD_ERRORS + FRONTEND_TEST_ERRORS + FRONTEND_LINT_ERRORS + FRONTEND_TSC_ERRORS))
|
||
|
|
|
||
|
|
echo "| Composant | Erreurs | Warnings | Statut |" >> $OUTPUT
|
||
|
|
echo "|-----------|---------|----------|--------|" >> $OUTPUT
|
||
|
|
echo "| **Backend Build** | ${BACKEND_BUILD_ERRORS} | - | $([ $BACKEND_BUILD_ERRORS -eq 0 ] && echo '✅' || echo '❌') |" >> $OUTPUT
|
||
|
|
echo "| **Backend Tests** | ${BACKEND_TEST_ERRORS} | - | $([ $BACKEND_TEST_ERRORS -eq 0 ] && echo '✅' || echo '❌') |" >> $OUTPUT
|
||
|
|
echo "| **Backend Vet** | ${BACKEND_VET_ERRORS} | - | $([ $BACKEND_VET_ERRORS -eq 0 ] && echo '✅' || echo '❌') |" >> $OUTPUT
|
||
|
|
echo "| **Frontend Build** | ${FRONTEND_BUILD_ERRORS} | - | $([ $FRONTEND_BUILD_ERRORS -eq 0 ] && echo '✅' || echo '❌') |" >> $OUTPUT
|
||
|
|
echo "| **Frontend Tests** | ${FRONTEND_TEST_ERRORS} | - | $([ $FRONTEND_TEST_ERRORS -eq 0 ] && echo '✅' || echo '❌') |" >> $OUTPUT
|
||
|
|
echo "| **Frontend Lint** | ${FRONTEND_LINT_ERRORS} | - | $([ $FRONTEND_LINT_ERRORS -eq 0 ] && echo '✅' || echo '❌') |" >> $OUTPUT
|
||
|
|
echo "| **Frontend TypeScript** | ${FRONTEND_TSC_ERRORS} | - | $([ $FRONTEND_TSC_ERRORS -eq 0 ] && echo '✅' || echo '❌') |" >> $OUTPUT
|
||
|
|
echo "| **TOTAL** | **${TOTAL_ERRORS}** | - | $([ $TOTAL_ERRORS -eq 0 ] && echo '✅ AUCUNE ERREUR' || echo '❌ ERREURS DÉTECTÉES') |" >> $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
|
||
|
|
# ===========================================
|
||
|
|
# DÉTAILS BACKEND
|
||
|
|
# ===========================================
|
||
|
|
echo "## 📡 Backend Go - Détails" >> $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
|
||
|
|
echo "### Build Errors" >> $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
if [ -f "docs/ORIGIN/error-logs/backend-build-${DATE}.log" ]; then
|
||
|
|
if [ $BACKEND_BUILD_ERRORS -eq 0 ]; then
|
||
|
|
echo "✅ **Aucune erreur de build**" >> $OUTPUT
|
||
|
|
else
|
||
|
|
echo "\`\`\`" >> $OUTPUT
|
||
|
|
head -50 "docs/ORIGIN/error-logs/backend-build-${DATE}.log" >> $OUTPUT
|
||
|
|
echo "\`\`\`" >> $OUTPUT
|
||
|
|
fi
|
||
|
|
else
|
||
|
|
echo "⚠️ Fichier de log non trouvé" >> $OUTPUT
|
||
|
|
fi
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
|
||
|
|
echo "### Test Errors" >> $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
if [ -f "docs/ORIGIN/error-logs/backend-tests-${DATE}.log" ]; then
|
||
|
|
if [ $BACKEND_TEST_ERRORS -eq 0 ]; then
|
||
|
|
echo "✅ **Tous les tests passent**" >> $OUTPUT
|
||
|
|
else
|
||
|
|
echo "\`\`\`" >> $OUTPUT
|
||
|
|
grep -A 3 -i "FAIL\|error" "docs/ORIGIN/error-logs/backend-tests-${DATE}.log" | head -30 >> $OUTPUT
|
||
|
|
echo "\`\`\`" >> $OUTPUT
|
||
|
|
fi
|
||
|
|
else
|
||
|
|
echo "⚠️ Fichier de log non trouvé" >> $OUTPUT
|
||
|
|
fi
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
|
||
|
|
# ===========================================
|
||
|
|
# DÉTAILS FRONTEND
|
||
|
|
# ===========================================
|
||
|
|
echo "## 🌐 Frontend React - Détails" >> $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
|
||
|
|
echo "### Build Errors" >> $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
if [ -f "docs/ORIGIN/error-logs/frontend-build-${DATE}.log" ]; then
|
||
|
|
if [ $FRONTEND_BUILD_ERRORS -eq 0 ]; then
|
||
|
|
echo "✅ **Aucune erreur de build**" >> $OUTPUT
|
||
|
|
else
|
||
|
|
echo "\`\`\`" >> $OUTPUT
|
||
|
|
head -50 "docs/ORIGIN/error-logs/frontend-build-${DATE}.log" >> $OUTPUT
|
||
|
|
echo "\`\`\`" >> $OUTPUT
|
||
|
|
fi
|
||
|
|
else
|
||
|
|
echo "⚠️ Fichier de log non trouvé" >> $OUTPUT
|
||
|
|
fi
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
|
||
|
|
echo "### TypeScript Errors" >> $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
if [ -f "docs/ORIGIN/error-logs/frontend-tsc-${DATE}.log" ]; then
|
||
|
|
if [ $FRONTEND_TSC_ERRORS -eq 0 ]; then
|
||
|
|
echo "✅ **Aucune erreur TypeScript**" >> $OUTPUT
|
||
|
|
else
|
||
|
|
echo "\`\`\`" >> $OUTPUT
|
||
|
|
head -50 "docs/ORIGIN/error-logs/frontend-tsc-${DATE}.log" >> $OUTPUT
|
||
|
|
echo "\`\`\`" >> $OUTPUT
|
||
|
|
fi
|
||
|
|
else
|
||
|
|
echo "⚠️ Fichier de log non trouvé" >> $OUTPUT
|
||
|
|
fi
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
|
||
|
|
# ===========================================
|
||
|
|
# RECOMMANDATIONS
|
||
|
|
# ===========================================
|
||
|
|
echo "## 🎯 Recommandations" >> $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
|
||
|
|
if [ $TOTAL_ERRORS -eq 0 ]; then
|
||
|
|
echo "🎉 **Félicitations!** Aucune erreur détectée. Le projet est en excellent état." >> $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
echo "### Prochaines étapes" >> $OUTPUT
|
||
|
|
echo "1. ✅ Phase 0 (Error Resolution) non nécessaire" >> $OUTPUT
|
||
|
|
echo "2. ✅ Reprendre l'implémentation à partir de T0511" >> $OUTPUT
|
||
|
|
else
|
||
|
|
echo "⚠️ **${TOTAL_ERRORS} erreur(s) détectée(s).** Corrections nécessaires avant de continuer." >> $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
echo "### Prochaines étapes (Ordre de priorité)" >> $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
echo "1. 📋 **Mettre à jour ORIGIN_ERROR_REGISTRY.md**" >> $OUTPUT
|
||
|
|
echo " - Documenter chaque erreur identifiée" >> $OUTPUT
|
||
|
|
echo " - Assigner catégorie (CAT-XX) et priorité (PX)" >> $OUTPUT
|
||
|
|
echo " - Estimer complexité et temps" >> $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
echo "2. 📝 **Créer les tâches TERR-XXX**" >> $OUTPUT
|
||
|
|
echo " - Une tâche par erreur dans ORIGIN_IMPLEMENTATION_TASKS.md" >> $OUTPUT
|
||
|
|
echo " - Suivre le template défini dans ORIGIN_ERROR_RESOLUTION_STRATEGY.md" >> $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
echo "3. 🔧 **Corriger par ordre de priorité**" >> $OUTPUT
|
||
|
|
echo " - P0 (Critiques) en premier" >> $OUTPUT
|
||
|
|
echo " - Puis P1 (Hautes)" >> $OUTPUT
|
||
|
|
echo " - Puis P2 (Moyennes)" >> $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
echo "4. ✅ **Valider les corrections**" >> $OUTPUT
|
||
|
|
echo " - Relancer ce script après chaque correction" >> $OUTPUT
|
||
|
|
echo " - Vérifier que le nombre d'erreurs diminue" >> $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
echo "5. 🚀 **Reprendre T0511+ une fois TOUT corrigé**" >> $OUTPUT
|
||
|
|
fi
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
|
||
|
|
# ===========================================
|
||
|
|
# FICHIERS DE LOGS
|
||
|
|
# ===========================================
|
||
|
|
echo "## 📁 Fichiers de Logs" >> $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
echo "Tous les logs détaillés sont disponibles dans:" >> $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
echo "\`\`\`" >> $OUTPUT
|
||
|
|
echo "docs/ORIGIN/error-logs/" >> $OUTPUT
|
||
|
|
ls -lh docs/ORIGIN/error-logs/*${DATE}* 2>/dev/null | awk '{print " - " $9 " (" $5 ")"}' >> $OUTPUT
|
||
|
|
echo "\`\`\`" >> $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
|
||
|
|
# ===========================================
|
||
|
|
# FOOTER
|
||
|
|
# ===========================================
|
||
|
|
echo "---" >> $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
echo "**Généré par** : scripts/generate-error-summary.sh" >> $OUTPUT
|
||
|
|
echo "**Référence** : ORIGIN_ERROR_RESOLUTION_STRATEGY.md" >> $OUTPUT
|
||
|
|
echo "" >> $OUTPUT
|
||
|
|
|
||
|
|
# Afficher aussi à l'écran
|
||
|
|
cat $OUTPUT
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "✅ Résumé généré avec succès: $OUTPUT"
|
||
|
|
|