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