fix: améliorer le script Python pour supprimer TOUS les doublons avant d'ajouter

- le script supprime maintenant TOUS les liens Équipe existants (même s'il n'y en a qu'un)
- puis ajoute un seul lien Équipe au bon endroit
- vérifie qu'il n'y a qu'un seul lien après l'opération
- évite les doublons même si le script s'exécute plusieurs fois
This commit is contained in:
syoul
2025-12-09 10:40:45 +01:00
parent 99cb96bbd6
commit 9a055add6f

View File

@@ -118,7 +118,7 @@ export default TeamPage;
EOF
RUN echo "✅ Page team.tsx créée"
# Script Python pour ajouter le lien Équipe dans Navigation.tsx (évite les doublons)
# Script Python pour ajouter le lien Équipe dans Navigation.tsx (supprime TOUS les doublons)
RUN cat > /tmp/add_team_link.py << 'PYEOF'
#!/usr/bin/env python3
import sys
@@ -131,63 +131,51 @@ 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()
# 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 '</li>' in line:
skip_until_close = False
continue
elif in_team_link:
new_lines.append(line)
if '</li>' 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
# ÉTAPE 1: Supprimer TOUS les liens Équipe existants (même s'il n'y en a qu'un)
print("🧹 Nettoyage de tous les liens Équipe existants...")
lines = content.splitlines(keepends=True)
if lines and not lines[-1].endswith('\n'):
lines[-1] = lines[-1] + '\n'
new_lines = []
skip_team_link = False
team_links_removed = 0
i = 0
while i < len(lines):
line = lines[i]
# Détecter le début d'un lien Équipe
if ('href="/team"' in line or "href='/team'" in line) and not skip_team_link:
skip_team_link = True
team_links_removed += 1
# Ignorer cette ligne et les lignes suivantes jusqu'à </li>
i += 1
continue
# Si on est dans un bloc Équipe à supprimer, ignorer jusqu'à </li>
if skip_team_link:
if '</li>' in line:
skip_team_link = False
i += 1
continue
new_lines.append(line)
i += 1
if team_links_removed > 0:
print(f"✅ {team_links_removed} lien(s) Équipe supprimé(s)")
# ÉTAPE 2: Ajouter un seul lien Équipe au bon endroit
content_cleaned = ''.join(new_lines)
lines = content_cleaned.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):
@@ -208,14 +196,20 @@ try:
] + 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)
# Vérifier qu'il n'y a qu'un seul lien maintenant
with open(f, 'r', encoding='utf-8') as file:
final_content = file.read()
final_count = len(re.findall(r'href=["\']/team["\']', final_content))
if final_count == 1:
print("✅ Navigation.tsx modifié - 1 seul lien Équipe présent")
sys.exit(0)
else:
print(f"⚠️ Attention: {final_count} lien(s) Équipe détecté(s) après modification", file=sys.stderr)
sys.exit(1)
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)