- Intégration du code source du framework dans radar-app/ (vendoring) - Suppression de la dépendance npm aoe_technology_radar - Création de scripts build-radar.js et serve-radar.js pour remplacer le CLI techradar - Adaptation de tous les scripts et Docker pour utiliser radar-app/ au lieu de .techradar - Refactorisation complète de Dockerfile.business - Mise à jour de la documentation (architecture, déploiement, développement) - Mise à jour de .gitignore pour ignorer les artefacts de build de radar-app/ - Ajout de postcss dans les dépendances Docker pour le build Next.js Le projet est maintenant complètement indépendant du package externe. Co-authored-by: Cursor <cursoragent@cursor.com>
157 lines
4.8 KiB
Bash
Executable File
157 lines
4.8 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# Script pour créer la page Next.js /team et modifier Navigation
|
||
|
||
# Ne pas utiliser set -e car on veut gérer les erreurs manuellement
|
||
|
||
TECHRADAR_DIR="radar-app"
|
||
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..."
|
||
echo "📄 Contenu actuel de Navigation.tsx (extrait):"
|
||
grep -A 5 -B 5 "overview" "$NAV_FILE" || echo "Pattern 'overview' non trouvé"
|
||
|
||
# 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
|
||
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
|
||
|
||
# Succès
|
||
exit 0
|
||
|