- Installation de Python3 dans Dockerfile - Logs détaillés pour diagnostic - Vérification après modification - set -e pour arrêter en cas d'erreur - Vérification dans Dockerfile que le script a réussi
116 lines
3.4 KiB
Bash
Executable File
116 lines
3.4 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# Script pour créer la page Next.js /team et modifier Navigation
|
||
|
||
set -e # Arrêter en cas d'erreur
|
||
|
||
TECHRADAR_DIR=".techradar"
|
||
TEAM_PAGE="$TECHRADAR_DIR/src/pages/team.tsx"
|
||
NAV_FILE="$TECHRADAR_DIR/src/components/Navigation/Navigation.tsx"
|
||
|
||
echo "📁 TECHRADAR_DIR: $TECHRADAR_DIR"
|
||
echo "📄 TEAM_PAGE: $TEAM_PAGE"
|
||
echo "📄 NAV_FILE: $NAV_FILE"
|
||
|
||
# Créer la page team.tsx qui charge team.html via iframe (plus simple et fiable)
|
||
if [ ! -f "$TEAM_PAGE" ]; then
|
||
mkdir -p "$(dirname "$TEAM_PAGE")"
|
||
cat > "$TEAM_PAGE" << 'EOF'
|
||
import Head from "next/head";
|
||
import { CustomPage } from "@/pages/_app";
|
||
|
||
const TeamPage: CustomPage = () => {
|
||
return (
|
||
<>
|
||
<Head>
|
||
<title>Équipe & Technologies - Laplank</title>
|
||
</Head>
|
||
<div style={{ width: '100%', height: '100vh', border: 'none', margin: 0, padding: 0 }}>
|
||
<iframe
|
||
src="/team.html"
|
||
style={{
|
||
width: '100%',
|
||
height: '100%',
|
||
border: 'none',
|
||
margin: 0,
|
||
padding: 0
|
||
}}
|
||
title="Équipe & Technologies"
|
||
/>
|
||
</div>
|
||
</>
|
||
);
|
||
};
|
||
|
||
export default TeamPage;
|
||
EOF
|
||
echo "✅ Page team.tsx créée (iframe)"
|
||
else
|
||
echo "ℹ️ Page team.tsx existe déjà"
|
||
fi
|
||
|
||
# Modifier Navigation.tsx pour ajouter le lien
|
||
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()
|
||
|
||
# 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"
|
||
|
||
# Vérifier que la modification a réussi
|
||
if grep -q 'href="/team"' "$NAV_FILE"; then
|
||
echo "✅ Lien Équipe ajouté au composant Navigation"
|
||
else
|
||
echo "❌ Échec: Lien Équipe non trouvé après modification"
|
||
exit 1
|
||
fi
|
||
else
|
||
echo "ℹ️ Lien Équipe déjà présent dans Navigation"
|
||
fi
|
||
else
|
||
echo "❌ Navigation.tsx non trouvé: $NAV_FILE"
|
||
echo "📁 Contenu du dossier:"
|
||
ls -la "$(dirname "$NAV_FILE")" 2>/dev/null || echo "Dossier non trouvé"
|
||
exit 1
|
||
fi
|
||
|