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:
@@ -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,61 +131,49 @@ 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...")
|
||||
# É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 = []
|
||||
in_team_link = False
|
||||
team_link_added = False
|
||||
skip_until_close = False
|
||||
skip_team_link = False
|
||||
team_links_removed = 0
|
||||
|
||||
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
|
||||
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
|
||||
elif skip_until_close:
|
||||
|
||||
# Si on est dans un bloc Équipe à supprimer, ignorer jusqu'à </li>
|
||||
if skip_team_link:
|
||||
if '</li>' in line:
|
||||
skip_until_close = False
|
||||
skip_team_link = False
|
||||
i += 1
|
||||
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)
|
||||
new_lines.append(line)
|
||||
i += 1
|
||||
|
||||
# Si le lien n'existe pas, l'ajouter
|
||||
lines = content.splitlines(keepends=True)
|
||||
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'
|
||||
|
||||
@@ -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é")
|
||||
|
||||
# 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)
|
||||
|
||||
Reference in New Issue
Block a user