fix: amélioration modification Navigation.tsx avec sed + fallback Python
- Utilisation de sed en premier (plus simple) - Fallback avec Python si sed échoue - Logs détaillés pour voir le contenu avant/après - Affichage du contenu modifié pour vérification
This commit is contained in:
@@ -54,55 +54,93 @@ if [ -f "$NAV_FILE" ]; then
|
||||
echo "📝 Navigation.tsx trouvé, vérification du lien..."
|
||||
if ! grep -q 'href="/team"' "$NAV_FILE"; then
|
||||
echo "➕ Ajout du lien Équipe dans Navigation.tsx..."
|
||||
# Ajouter le lien après Overview, avant le commentaire
|
||||
# Utiliser Python pour une modification plus précise
|
||||
python3 << 'PYTHON_SCRIPT'
|
||||
import re
|
||||
import sys
|
||||
|
||||
nav_file = sys.argv[1]
|
||||
print(f"📝 Modification de {nav_file}")
|
||||
|
||||
try:
|
||||
with open(nav_file, 'r') as f:
|
||||
content = f.read()
|
||||
echo "📄 Contenu actuel de Navigation.tsx (extrait):"
|
||||
grep -A 5 -B 5 "overview" "$NAV_FILE" || echo "Pattern 'overview' non trouvé"
|
||||
|
||||
# Trouver la fin du lien Overview et insérer le nouveau lien avant le commentaire
|
||||
pattern = r'(</Link>\s*</li>\s*)(\{/\*)'
|
||||
replacement = r'\1 <li className={styles.item}>\n <Link href="/team">\n <span className={styles.label}>👥 Équipe</span>\n </Link>\n </li>\n \2'
|
||||
|
||||
new_content = re.sub(pattern, replacement, content)
|
||||
|
||||
if new_content == content:
|
||||
print("⚠️ Aucune modification effectuée, pattern non trouvé")
|
||||
print("Contenu autour de Overview:")
|
||||
lines = content.split('\n')
|
||||
for i, line in enumerate(lines):
|
||||
if 'overview' in line.lower():
|
||||
print(f"Ligne {i}: {line}")
|
||||
if i+1 < len(lines):
|
||||
print(f"Ligne {i+1}: {lines[i+1]}")
|
||||
if i+2 < len(lines):
|
||||
print(f"Ligne {i+2}: {lines[i+2]}")
|
||||
break
|
||||
else:
|
||||
with open(nav_file, 'w') as f:
|
||||
f.write(new_content)
|
||||
print("✅ Navigation.tsx modifié avec succès")
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ Erreur lors de la modification: {e}")
|
||||
sys.exit(1)
|
||||
PYTHON_SCRIPT
|
||||
"$NAV_FILE"
|
||||
# Utiliser sed pour une modification plus simple et fiable
|
||||
# Chercher la ligne avec </Link> après overview et insérer le nouveau lien avant le commentaire
|
||||
sed -i '/href="\/overview"/,/<\/Link>/ {
|
||||
/<\/Link>/a\
|
||||
<li className={styles.item}>\
|
||||
<Link href="/team">\
|
||||
<span className={styles.label}>👥 Équipe</span>\
|
||||
</Link>\
|
||||
</li>
|
||||
}' "$NAV_FILE"
|
||||
|
||||
# Vérifier que la modification a réussi
|
||||
if grep -q 'href="/team"' "$NAV_FILE"; then
|
||||
echo "✅ Lien Équipe ajouté au composant Navigation"
|
||||
echo "📄 Vérification du contenu modifié:"
|
||||
grep -A 3 'href="/team"' "$NAV_FILE"
|
||||
else
|
||||
echo "❌ Échec: Lien Équipe non trouvé après modification avec sed"
|
||||
echo "🔄 Tentative avec Python..."
|
||||
# Fallback avec Python
|
||||
python3 << 'PYTHON_SCRIPT'
|
||||
import re
|
||||
import sys
|
||||
|
||||
nav_file = sys.argv[1]
|
||||
print(f"📝 Modification de {nav_file} avec Python")
|
||||
|
||||
try:
|
||||
with open(nav_file, 'r') as f:
|
||||
lines = f.readlines()
|
||||
|
||||
# Trouver l'index de la ligne avec </Link> après overview
|
||||
insert_index = -1
|
||||
for i, line in enumerate(lines):
|
||||
if 'href="/overview"' in line:
|
||||
# Chercher la ligne </Link> qui suit
|
||||
for j in range(i, min(i+10, len(lines))):
|
||||
if '</Link>' in lines[j] and '</li>' in lines[j+1] if j+1 < len(lines) else False:
|
||||
insert_index = j + 2 # Après </li>
|
||||
break
|
||||
break
|
||||
|
||||
if insert_index > 0:
|
||||
# Insérer le nouveau lien
|
||||
new_lines = [
|
||||
' <li className={styles.item}>\n',
|
||||
' <Link href="/team">\n',
|
||||
' <span className={styles.label}>👥 Équipe</span>\n',
|
||||
' </Link>\n',
|
||||
' </li>\n'
|
||||
]
|
||||
lines[insert_index:insert_index] = new_lines
|
||||
|
||||
with open(nav_file, 'w') as f:
|
||||
f.writelines(lines)
|
||||
print("✅ Navigation.tsx modifié avec succès (Python)")
|
||||
else:
|
||||
print("❌ Impossible de trouver l'emplacement pour insérer le lien")
|
||||
print("Contenu autour de overview:")
|
||||
for i, line in enumerate(lines):
|
||||
if 'overview' in line.lower():
|
||||
for j in range(max(0, i-2), min(len(lines), i+10)):
|
||||
print(f"{j}: {lines[j]}", end='')
|
||||
break
|
||||
sys.exit(1)
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ Erreur lors de la modification: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
sys.exit(1)
|
||||
PYTHON_SCRIPT
|
||||
"$NAV_FILE"
|
||||
|
||||
# Vérifier à nouveau
|
||||
if grep -q 'href="/team"' "$NAV_FILE"; then
|
||||
echo "✅ Lien Équipe ajouté au composant Navigation (Python)"
|
||||
else
|
||||
echo "❌ Échec: Lien Équipe non trouvé après modification"
|
||||
echo "📄 Contenu actuel de Navigation.tsx:"
|
||||
cat "$NAV_FILE"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "ℹ️ Lien Équipe déjà présent dans Navigation"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user