From 57c9d26cb374b878de4e54257aff7d19b2fe5b09 Mon Sep 17 00:00:00 2001 From: syoul Date: Tue, 9 Dec 2025 10:06:17 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20am=C3=A9liorer=20la=20gestion=20des=20er?= =?UTF-8?q?reurs=20et=20le=20d=C3=A9bogage=20du=20script=20Python?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ajout de try/except pour capturer toutes les erreurs - logs de débogage améliorés (répertoire actuel, contenu) - meilleure gestion des fins de ligne - affichage de la traceback en cas d'erreur --- Dockerfile.business | 196 +++++++++++++++++++++++++------------------- 1 file changed, 110 insertions(+), 86 deletions(-) diff --git a/Dockerfile.business b/Dockerfile.business index 691a6f0..620516c 100644 --- a/Dockerfile.business +++ b/Dockerfile.business @@ -120,109 +120,133 @@ RUN echo "✅ Page team.tsx créée" # Script Python pour ajouter le lien Équipe dans Navigation.tsx (évite les doublons) RUN cat > /tmp/add_team_link.py << 'PYEOF' +#!/usr/bin/env python3 import sys import re import os f = ".techradar/src/components/Navigation/Navigation.tsx" -# Vérifier que le fichier existe -if not os.path.exists(f): - print(f"❌ Fichier {f} introuvable") - sys.exit(1) +try: + # Vérifier que le fichier existe + if not os.path.exists(f): + print(f"❌ Fichier {f} introuvable", file=sys.stderr) + print(f"📁 Répertoire actuel: {os.getcwd()}", file=sys.stderr) + print(f"📁 Contenu du répertoire .techradar/src/components/:", file=sys.stderr) + if os.path.exists(".techradar/src/components"): + for item in os.listdir(".techradar/src/components"): + print(f" - {item}", file=sys.stderr) + sys.exit(1) -with open(f, 'r', encoding='utf-8') as file: - content = file.read() + with open(f, 'r', encoding='utf-8') as file: + content = file.read() -# Vérifier si le lien existe déjà (compter les occurrences) -team_link_count = len(re.findall(r'href=["\']/team["\']', content)) -if team_link_count > 0: - print(f"ℹ️ Lien Équipe déjà présent ({team_link_count} occurrence(s))") - # Si plusieurs occurrences, supprimer les doublons - if team_link_count > 1: - print("⚠️ Détection de doublons, nettoyage...") - lines = content.splitlines(keepends=True) - if not lines or lines[-1] and not lines[-1].endswith('\n'): - lines[-1] = lines[-1] + '\n' - - new_lines = [] - in_team_link = False - team_link_added = False - skip_until_close = False - - for line in lines: - if 'href="/team"' in line or "href='/team'" in line: - if not team_link_added: - # Garder la première occurrence - in_team_link = True - team_link_added = True - new_lines.append(line) - else: - # Ignorer les doublons - skip_until_close = True + # Vérifier si le lien existe déjà (compter les occurrences) + team_link_count = len(re.findall(r'href=["\']/team["\']', content)) + if team_link_count > 0: + print(f"ℹ️ Lien Équipe déjà présent ({team_link_count} occurrence(s))") + # Si plusieurs occurrences, supprimer les doublons + if team_link_count > 1: + print("⚠️ Détection de doublons, nettoyage...") + lines = content.splitlines(keepends=True) + if lines and not lines[-1].endswith('\n'): + lines[-1] = lines[-1] + '\n' + + new_lines = [] + in_team_link = False + team_link_added = False + skip_until_close = False + + for line in lines: + if 'href="/team"' in line or "href='/team'" in line: + if not team_link_added: + # Garder la première occurrence + in_team_link = True + team_link_added = True + new_lines.append(line) + else: + # Ignorer les doublons + skip_until_close = True + continue + elif skip_until_close: + if '' in line: + skip_until_close = False continue - elif skip_until_close: - if '' in line: - skip_until_close = False - continue - elif in_team_link: - new_lines.append(line) - if '' in line: - in_team_link = False - else: - new_lines.append(line) - + elif in_team_link: + new_lines.append(line) + if '' in line: + in_team_link = False + else: + new_lines.append(line) + + with open(f, 'w', encoding='utf-8') as file: + file.writelines(new_lines) + print("✅ Doublons supprimés") + sys.exit(0) + + # Si le lien n'existe pas, l'ajouter + lines = content.splitlines(keepends=True) + if lines and not lines[-1].endswith('\n'): + lines[-1] = lines[-1] + '\n' + + insert_idx = -1 + for i, line in enumerate(lines): + if 'href="/overview"' in line: + for j in range(i, min(i+10, len(lines))): + if '' in lines[j] and j+1 < len(lines) and '' in lines[j+1]: + insert_idx = j + 2 + break + break + + if insert_idx > 0: + new_lines = lines[:insert_idx] + [ + '
  • \n', + ' \n', + ' 👥 Équipe\n', + ' \n', + '
  • \n' + ] + lines[insert_idx:] with open(f, 'w', encoding='utf-8') as file: file.writelines(new_lines) - print("✅ Doublons supprimés") - sys.exit(0) - -# Si le lien n'existe pas, l'ajouter -lines = content.splitlines(keepends=True) -if not lines or lines[-1] and not lines[-1].endswith('\n'): - lines[-1] = lines[-1] + '\n' - -insert_idx = -1 -for i, line in enumerate(lines): - if 'href="/overview"' in line: - for j in range(i, min(i+10, len(lines))): - if '' in lines[j] and j+1 < len(lines) and '' in lines[j+1]: - insert_idx = j + 2 - break - break - -if insert_idx > 0: - new_lines = lines[:insert_idx] + [ - '
  • \n', - ' \n', - ' 👥 Équipe\n', - ' \n', - '
  • \n' - ] + lines[insert_idx:] - with open(f, 'w', encoding='utf-8') as file: - file.writelines(new_lines) - print("✅ Navigation.tsx modifié - lien Équipe ajouté") - sys.exit(0) -else: - print("❌ Impossible de trouver l'emplacement pour insérer le lien") + print("✅ Navigation.tsx modifié - lien Équipe ajouté") + sys.exit(0) + else: + print("❌ Impossible de trouver l'emplacement pour insérer le lien", file=sys.stderr) + print("📄 Recherche de 'href=\"/overview\"' dans le fichier...", file=sys.stderr) + for i, line in enumerate(lines[:30]): + if 'overview' in line.lower(): + print(f" Ligne {i+1}: {line.strip()[:80]}", file=sys.stderr) + sys.exit(1) +except Exception as e: + print(f"❌ Erreur Python: {e}", file=sys.stderr) + import traceback + traceback.print_exc(file=sys.stderr) sys.exit(1) PYEOF # Modifier Navigation.tsx pour ajouter le lien Équipe (le script Python gère les doublons) RUN echo "🔧 Modification de Navigation.tsx pour le lien Équipe..." && \ - python3 /tmp/add_team_link.py || (echo "❌ Erreur lors de l'exécution du script Python" && exit 1) && \ - team_count=$$(grep -c 'href="/team"' .techradar/src/components/Navigation/Navigation.tsx 2>/dev/null || echo "0") && \ - if [ "$$team_count" -eq "1" ]; then \ - echo "✅ Lien Équipe présent (1 occurrence)"; \ - elif [ "$$team_count" -gt "1" ]; then \ - echo "⚠️ Plusieurs occurrences détectées ($$team_count), relance du nettoyage..."; \ - python3 /tmp/add_team_link.py || (echo "❌ Erreur lors du nettoyage" && exit 1); \ - final_count=$$(grep -c 'href="/team"' .techradar/src/components/Navigation/Navigation.tsx 2>/dev/null || echo "0") && \ - echo "✅ Après nettoyage: $$final_count occurrence(s)"; \ + echo "📁 Vérification de l'emplacement du fichier..." && \ + ls -la .techradar/src/components/Navigation/ 2>/dev/null || echo "⚠️ Répertoire Navigation non trouvé" && \ + python3 /tmp/add_team_link.py 2>&1 || (echo "❌ Erreur lors de l'exécution du script Python" && python3 -c "import traceback; traceback.print_exc()" 2>&1 || true && exit 1) && \ + if [ -f .techradar/src/components/Navigation/Navigation.tsx ]; then \ + team_count=$$(grep -c 'href="/team"' .techradar/src/components/Navigation/Navigation.tsx 2>/dev/null || echo "0") && \ + echo "📊 Nombre d'occurrences trouvées: $$team_count" && \ + if [ "$$team_count" -eq "1" ]; then \ + echo "✅ Lien Équipe présent (1 occurrence)"; \ + elif [ "$$team_count" -gt "1" ]; then \ + echo "⚠️ Plusieurs occurrences détectées ($$team_count), relance du nettoyage..."; \ + python3 /tmp/add_team_link.py 2>&1 || (echo "❌ Erreur lors du nettoyage" && exit 1); \ + final_count=$$(grep -c 'href="/team"' .techradar/src/components/Navigation/Navigation.tsx 2>/dev/null || echo "0") && \ + echo "✅ Après nettoyage: $$final_count occurrence(s)"; \ + else \ + echo "❌ Lien Équipe non trouvé après modification"; \ + echo "📄 Aperçu de Navigation.tsx (premières 50 lignes):"; \ + head -50 .techradar/src/components/Navigation/Navigation.tsx || true; \ + exit 1; \ + fi; \ else \ - echo "❌ Lien Équipe non trouvé après modification"; \ - echo "📄 Contenu de Navigation.tsx:"; \ - cat .techradar/src/components/Navigation/Navigation.tsx; \ + echo "❌ Fichier Navigation.tsx introuvable"; \ exit 1; \ fi