refactor: réorganiser Dockerfiles et scripts par module
Réorganise la structure Docker pour plus de cohérence dans le monorepo. Chaque module (backend, docs) a maintenant ses propres Dockerfiles et scripts. Changements: - backend/docker/ : Dockerfile (prod) + dev.Dockerfile (hot reload) + init script - docs/docker/ : mkdocs.Dockerfile + pdf.Dockerfile - docs/scripts/ : generate-bdd-docs.py + generate-pdf-docs.py - Déplace docker-compose.yml dans backend/ - Supprime scripts obsolètes (fix-markdown-*.sh, remove-broken-links.sh) - Déplace .dockerignore à la racine - Met à jour Makefile avec nouveaux chemins Organisation finale: - backend/ : tout ce qui concerne l'API backend - docs/ : tout ce qui concerne la documentation - scripts/ : uniquement setup.sh (scripts généraux du projet)
This commit is contained in:
31
.dockerignore
Normal file
31
.dockerignore
Normal file
@@ -0,0 +1,31 @@
|
||||
# Ignore backend files
|
||||
backend/**
|
||||
mobile/**
|
||||
|
||||
# Ignore git
|
||||
.git/
|
||||
.gitignore
|
||||
|
||||
# Ignore docker files
|
||||
docker-compose.yml
|
||||
*.dockerfile
|
||||
|
||||
# Ignore node_modules and build artifacts
|
||||
node_modules/
|
||||
dist/
|
||||
build/
|
||||
bin/
|
||||
tmp/
|
||||
|
||||
# Ignore environment files
|
||||
.env
|
||||
.env.*
|
||||
|
||||
# Ignore IDE
|
||||
.vscode/
|
||||
.idea/
|
||||
|
||||
# Ignore documentation build artifacts
|
||||
site/
|
||||
docs/generated/
|
||||
output/
|
||||
24
Makefile
24
Makefile
@@ -71,13 +71,13 @@ clean:
|
||||
docs-clean:
|
||||
@echo "$(YELLOW)Cleaning generated documentation...$(NC)"
|
||||
@rm -rf docs/generated/
|
||||
@docker rmi roadwave-pdf-generator 2>/dev/null || true
|
||||
@docker rmi roadwave-pdf-generator roadwave-mkdocs 2>/dev/null || true
|
||||
@echo "$(GREEN)✓ Documentation cleaned$(NC)"
|
||||
|
||||
## docker-up: Start all Docker services
|
||||
docker-up:
|
||||
@echo "$(BLUE)Starting Docker services...$(NC)"
|
||||
@docker compose up -d
|
||||
@cd backend && docker compose up -d
|
||||
@echo "$(GREEN)✓ Services started$(NC)"
|
||||
@echo "$(YELLOW)API: http://localhost:8080$(NC)"
|
||||
@echo "$(YELLOW)Zitadel: http://localhost:8081$(NC)"
|
||||
@@ -86,12 +86,12 @@ docker-up:
|
||||
## docker-down: Stop all Docker services
|
||||
docker-down:
|
||||
@echo "$(YELLOW)Stopping Docker services...$(NC)"
|
||||
@docker compose down
|
||||
@cd backend && docker compose down
|
||||
@echo "$(GREEN)✓ Services stopped$(NC)"
|
||||
|
||||
## docker-logs: Show Docker logs
|
||||
docker-logs:
|
||||
@docker compose logs -f
|
||||
@cd backend && docker compose logs -f
|
||||
|
||||
## migrate-up: Apply all migrations
|
||||
migrate-up:
|
||||
@@ -151,30 +151,34 @@ run-api:
|
||||
|
||||
## docs-serve: Start documentation server (http://localhost:8000)
|
||||
docs-serve:
|
||||
@echo "$(BLUE)Building MkDocs Docker image with plugins...$(NC)"
|
||||
@docker build -t roadwave-mkdocs -f docs/docker/mkdocs.Dockerfile . -q
|
||||
@echo "$(BLUE)Generating BDD documentation from Gherkin files...$(NC)"
|
||||
@python3 scripts/generate-bdd-docs.py
|
||||
@python3 docs/scripts/generate-bdd-docs.py
|
||||
@echo "$(GREEN)✓ BDD documentation generated$(NC)"
|
||||
@echo "$(BLUE)Starting documentation server...$(NC)"
|
||||
@echo "$(YELLOW)Documentation available at http://localhost:8000$(NC)"
|
||||
@docker run --rm -it -p 8000:8000 -v "$(PWD):/docs" squidfunk/mkdocs-material
|
||||
@docker run --rm -p 8000:8000 -v "$(PWD):/docs" roadwave-mkdocs
|
||||
|
||||
## bdd-docs: Generate BDD docs from Gherkin and serve with MkDocs (http://localhost:8000)
|
||||
bdd-docs:
|
||||
@echo "$(BLUE)Building MkDocs Docker image with plugins...$(NC)"
|
||||
@docker build -t roadwave-mkdocs -f docs/docker/mkdocs.Dockerfile . -q
|
||||
@echo "$(BLUE)Generating BDD documentation from Gherkin files...$(NC)"
|
||||
@python3 scripts/generate-bdd-docs.py
|
||||
@python3 docs/scripts/generate-bdd-docs.py
|
||||
@echo "$(GREEN)✓ BDD documentation generated$(NC)"
|
||||
@echo "$(BLUE)Starting documentation server...$(NC)"
|
||||
@echo "$(YELLOW)Documentation available at http://localhost:8000$(NC)"
|
||||
@echo "$(YELLOW)Navigate to 'Tests BDD' section$(NC)"
|
||||
@docker run --rm -it -p 8000:8000 -v "$(PWD):/docs" squidfunk/mkdocs-material
|
||||
@docker run --rm -p 8000:8000 -v "$(PWD):/docs" roadwave-mkdocs
|
||||
|
||||
## docs-pdf: Generate PDF of all documentation (output/RoadWave_Documentation.pdf)
|
||||
docs-pdf:
|
||||
@echo "$(BLUE)Generating BDD documentation from Gherkin files...$(NC)"
|
||||
@python3 scripts/generate-bdd-docs.py
|
||||
@python3 docs/scripts/generate-bdd-docs.py
|
||||
@echo "$(GREEN)✓ BDD documentation generated$(NC)"
|
||||
@echo "$(BLUE)Building PDF generator Docker image...$(NC)"
|
||||
@docker build -t roadwave-pdf-generator -f scripts/Dockerfile.pdf . -q
|
||||
@docker build -t roadwave-pdf-generator -f docs/docker/pdf.Dockerfile . -q
|
||||
@echo "$(BLUE)Generating PDF documentation...$(NC)"
|
||||
@docker run --rm -u $(shell id -u):$(shell id -g) -v "$(PWD):/docs" roadwave-pdf-generator
|
||||
@echo "$(GREEN)✓ PDF generated: output/RoadWave_Documentation.pdf$(NC)"
|
||||
|
||||
@@ -4,15 +4,15 @@ services:
|
||||
# Backend API
|
||||
api:
|
||||
build:
|
||||
context: ./backend
|
||||
dockerfile: Dockerfile.dev
|
||||
context: .
|
||||
dockerfile: docker/dev.Dockerfile
|
||||
ports:
|
||||
- "8080:8080"
|
||||
volumes:
|
||||
- ./backend:/app
|
||||
- .:/app
|
||||
- /app/tmp
|
||||
env_file:
|
||||
- ./backend/.env
|
||||
- ./.env
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
14
docs/docker/mkdocs.Dockerfile
Normal file
14
docs/docker/mkdocs.Dockerfile
Normal file
@@ -0,0 +1,14 @@
|
||||
FROM squidfunk/mkdocs-material:latest
|
||||
|
||||
# Install mkdocs-kroki-plugin
|
||||
RUN pip install --no-cache-dir mkdocs-kroki-plugin
|
||||
|
||||
# Set working directory
|
||||
WORKDIR /docs
|
||||
|
||||
# Expose MkDocs port
|
||||
EXPOSE 8000
|
||||
|
||||
# Default command
|
||||
ENTRYPOINT ["mkdocs"]
|
||||
CMD ["serve", "--dev-addr=0.0.0.0:8000"]
|
||||
@@ -18,4 +18,4 @@ RUN pip install --no-cache-dir \
|
||||
|
||||
WORKDIR /docs
|
||||
|
||||
ENTRYPOINT ["python3", "/docs/scripts/generate-pdf-docs.py"]
|
||||
ENTRYPOINT ["python3", "/docs/docs/scripts/generate-pdf-docs.py"]
|
||||
@@ -1,141 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Script pour corriger les liens internes dans la documentation après refactorisation DDD
|
||||
|
||||
set -e
|
||||
|
||||
echo "🔗 Correction des liens internes dans la documentation..."
|
||||
|
||||
# Fonction pour corriger les liens dans les fichiers du domaine _shared
|
||||
fix_shared_links() {
|
||||
echo " → Correction des liens dans _shared..."
|
||||
find docs/domains/_shared -type f -name "*.md" -exec sed -i \
|
||||
-e 's|../../regles-metier/01-authentification-inscription.md|../rules/authentification.md|g' \
|
||||
-e 's|../../regles-metier/02-conformite-rgpd.md|../rules/rgpd.md|g' \
|
||||
-e 's|../../regles-metier/10-gestion-erreurs.md|../rules/gestion-erreurs.md|g' \
|
||||
-e 's|modele-global.md|../entities/modele-global.md|g' \
|
||||
{} \;
|
||||
}
|
||||
|
||||
# Fonction pour corriger les liens dans les fichiers du domaine recommendation
|
||||
fix_recommendation_links() {
|
||||
echo " → Correction des liens dans recommendation..."
|
||||
find docs/domains/recommendation -type f -name "*.md" -exec sed -i \
|
||||
-e 's|../../regles-metier/03-centres-interet-jauges.md|../rules/centres-interet-jauges.md|g' \
|
||||
-e 's|../../regles-metier/04-algorithme-recommandation.md|../rules/algorithme-recommandation.md|g' \
|
||||
-e 's|../../regles-metier/05-interactions-navigation.md|../rules/interactions-navigation.md|g' \
|
||||
-e 's|../../docs/regles-metier/04-algorithme-recommandation.md|../rules/algorithme-recommandation.md|g' \
|
||||
-e 's|modele-global.md|../../_shared/entities/modele-global.md|g' \
|
||||
{} \;
|
||||
}
|
||||
|
||||
# Fonction pour corriger les liens dans les fichiers du domaine content
|
||||
fix_content_links() {
|
||||
echo " → Correction des liens dans content..."
|
||||
find docs/domains/content -type f -name "*.md" -exec sed -i \
|
||||
-e 's|../../regles-metier/06-audio-guides-multi-sequences.md|../rules/audio-guides.md|g' \
|
||||
-e 's|../../regles-metier/07-contenus-geolocalises-voiture.md|../rules/contenus-geolocalises.md|g' \
|
||||
-e 's|../../regles-metier/11-creation-publication-contenu.md|../rules/creation-publication.md|g' \
|
||||
-e 's|../../regles-metier/12-radio-live.md|../rules/radio-live.md|g' \
|
||||
-e 's|../../regles-metier/13-detection-contenu-protege.md|../rules/detection-contenu-protege.md|g' \
|
||||
-e 's|modele-global.md|../../_shared/entities/modele-global.md|g' \
|
||||
{} \;
|
||||
}
|
||||
|
||||
# Fonction pour corriger les liens dans les fichiers du domaine advertising
|
||||
fix_advertising_links() {
|
||||
echo " → Correction des liens dans advertising..."
|
||||
find docs/domains/advertising -type f -name "*.md" -exec sed -i \
|
||||
-e 's|../../regles-metier/16-publicites.md|../rules/publicites.md|g' \
|
||||
-e 's|modele-global.md|../../_shared/entities/modele-global.md|g' \
|
||||
{} \;
|
||||
}
|
||||
|
||||
# Fonction pour corriger les liens dans les fichiers du domaine premium
|
||||
fix_premium_links() {
|
||||
echo " → Correction des liens dans premium..."
|
||||
find docs/domains/premium -type f -name "*.md" -exec sed -i \
|
||||
-e 's|../../regles-metier/08-mode-offline.md|../rules/mode-offline.md|g' \
|
||||
-e 's|../../regles-metier/09-abonnements-notifications.md|../rules/abonnements-notifications.md|g' \
|
||||
-e 's|../../regles-metier/17-premium.md|../rules/premium.md|g' \
|
||||
-e 's|modele-global.md|../../_shared/entities/modele-global.md|g' \
|
||||
{} \;
|
||||
}
|
||||
|
||||
# Fonction pour corriger les liens dans les fichiers du domaine monetization
|
||||
fix_monetization_links() {
|
||||
echo " → Correction des liens dans monetization..."
|
||||
find docs/domains/monetization -type f -name "*.md" -exec sed -i \
|
||||
-e 's|../../regles-metier/18-monetisation-createurs.md|../rules/monetisation-createurs.md|g' \
|
||||
-e 's|modele-global.md|../../_shared/entities/modele-global.md|g' \
|
||||
{} \;
|
||||
}
|
||||
|
||||
# Fonction pour corriger les liens dans les fichiers du domaine moderation
|
||||
fix_moderation_links() {
|
||||
echo " → Correction des liens dans moderation..."
|
||||
find docs/domains/moderation -type f -name "*.md" -exec sed -i \
|
||||
-e 's|../../regles-metier/14-moderation-flows.md|../rules/moderation-flows.md|g' \
|
||||
-e 's|../../regles-metier/15-moderation-communautaire.md|../rules/moderation-communautaire.md|g' \
|
||||
-e 's|../../regles-metier/19-autres-comportements.md|../rules/autres-comportements.md|g' \
|
||||
-e 's|modele-global.md|../../_shared/entities/modele-global.md|g' \
|
||||
{} \;
|
||||
}
|
||||
|
||||
# Fonction pour corriger les liens dans les autres fichiers docs (ADR, etc.)
|
||||
fix_other_docs_links() {
|
||||
echo " → Correction des liens dans ADR et autres docs..."
|
||||
|
||||
# ADR et autres fichiers qui référencent les anciennes règles métier
|
||||
find docs/adr docs/mobile docs/compliance docs/architecture -type f -name "*.md" 2>/dev/null -exec sed -i \
|
||||
-e 's|regles-metier/01-authentification-inscription.md|domains/_shared/rules/authentification.md|g' \
|
||||
-e 's|regles-metier/02-conformite-rgpd.md|domains/_shared/rules/rgpd.md|g' \
|
||||
-e 's|regles-metier/03-centres-interet-jauges.md|domains/recommendation/rules/centres-interet-jauges.md|g' \
|
||||
-e 's|regles-metier/04-algorithme-recommandation.md|domains/recommendation/rules/algorithme-recommandation.md|g' \
|
||||
-e 's|regles-metier/05-interactions-navigation.md|domains/recommendation/rules/interactions-navigation.md|g' \
|
||||
-e 's|regles-metier/06-audio-guides-multi-sequences.md|domains/content/rules/audio-guides.md|g' \
|
||||
-e 's|regles-metier/07-contenus-geolocalises-voiture.md|domains/content/rules/contenus-geolocalises.md|g' \
|
||||
-e 's|regles-metier/08-mode-offline.md|domains/premium/rules/mode-offline.md|g' \
|
||||
-e 's|regles-metier/09-abonnements-notifications.md|domains/premium/rules/abonnements-notifications.md|g' \
|
||||
-e 's|regles-metier/10-gestion-erreurs.md|domains/_shared/rules/gestion-erreurs.md|g' \
|
||||
-e 's|regles-metier/11-creation-publication-contenu.md|domains/content/rules/creation-publication.md|g' \
|
||||
-e 's|regles-metier/12-radio-live.md|domains/content/rules/radio-live.md|g' \
|
||||
-e 's|regles-metier/13-detection-contenu-protege.md|domains/content/rules/detection-contenu-protege.md|g' \
|
||||
-e 's|regles-metier/14-moderation-flows.md|domains/moderation/rules/moderation-flows.md|g' \
|
||||
-e 's|regles-metier/15-moderation-communautaire.md|domains/moderation/rules/moderation-communautaire.md|g' \
|
||||
-e 's|regles-metier/16-publicites.md|domains/advertising/rules/publicites.md|g' \
|
||||
-e 's|regles-metier/17-premium.md|domains/premium/rules/premium.md|g' \
|
||||
-e 's|regles-metier/18-monetisation-createurs.md|domains/monetization/rules/monetisation-createurs.md|g' \
|
||||
-e 's|regles-metier/19-autres-comportements.md|domains/moderation/rules/autres-comportements.md|g' \
|
||||
-e 's|diagrammes/entites/modele-global.md|domains/_shared/entities/modele-global.md|g' \
|
||||
-e 's|diagrammes/entites/modele-recommandation.md|domains/recommendation/entities/modele-recommandation.md|g' \
|
||||
-e 's|diagrammes/entites/modele-audio-guides.md|domains/content/entities/modele-audio-guides.md|g' \
|
||||
-e 's|diagrammes/entites/modele-radio-live.md|domains/content/entities/modele-radio-live.md|g' \
|
||||
-e 's|diagrammes/entites/modele-publicites.md|domains/advertising/entities/modele-publicites.md|g' \
|
||||
-e 's|diagrammes/entites/modele-premium.md|domains/premium/entities/modele-premium.md|g' \
|
||||
-e 's|diagrammes/entites/modele-monetisation.md|domains/monetization/entities/modele-monetisation.md|g' \
|
||||
-e 's|diagrammes/entites/modele-moderation.md|domains/moderation/entities/modele-moderation.md|g' \
|
||||
-e 's|diagrammes/flux/moderation-signalement.md|domains/moderation/flows/moderation-signalement.md|g' \
|
||||
-e 's|diagrammes/etats/signalement-lifecycle.md|domains/moderation/states/signalement-lifecycle.md|g' \
|
||||
-e 's|diagrammes/sequence/processus-appel-moderation.md|domains/moderation/sequences/processus-appel-moderation.md|g' \
|
||||
{} \; 2>/dev/null || true
|
||||
|
||||
# Fichier gherkin-moderation-overview.md
|
||||
if [ -f docs/gherkin-moderation-overview.md ]; then
|
||||
sed -i \
|
||||
-e 's|regles-metier/14-moderation-flows.md|domains/moderation/rules/moderation-flows.md|g' \
|
||||
-e 's|regles-metier/15-moderation-communautaire.md|domains/moderation/rules/moderation-communautaire.md|g' \
|
||||
docs/gherkin-moderation-overview.md
|
||||
fi
|
||||
}
|
||||
|
||||
# Exécuter toutes les corrections
|
||||
fix_shared_links
|
||||
fix_recommendation_links
|
||||
fix_content_links
|
||||
fix_advertising_links
|
||||
fix_premium_links
|
||||
fix_monetization_links
|
||||
fix_moderation_links
|
||||
fix_other_docs_links
|
||||
|
||||
echo "✅ Correction des liens terminée!"
|
||||
@@ -1,58 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Script pour ajouter des lignes vides avant les listes markdown
|
||||
# qui n'en ont pas, pour un rendu correct dans mkdocs
|
||||
|
||||
set -e
|
||||
|
||||
echo "🔍 Recherche des fichiers markdown dans docs/..."
|
||||
|
||||
# Compteur de fichiers modifiés
|
||||
modified=0
|
||||
|
||||
# Trouver tous les fichiers .md dans docs/
|
||||
find docs -name "*.md" -type f | while read -r file; do
|
||||
echo " Traitement de $file..."
|
||||
|
||||
# Utiliser awk pour ajouter une ligne vide avant les listes si nécessaire
|
||||
awk '
|
||||
BEGIN {
|
||||
prev = ""
|
||||
prev_empty = 1
|
||||
}
|
||||
{
|
||||
current = $0
|
||||
# Si la ligne courante commence par "- " et que la ligne précédente n'\''est pas vide
|
||||
# et ne commence pas déjà par "- " (déjà dans une liste)
|
||||
if (current ~ /^- / && prev !~ /^$/ && prev !~ /^- /) {
|
||||
print prev
|
||||
print "" # Ajouter une ligne vide
|
||||
prev = current
|
||||
}
|
||||
# Sinon, imprimer la ligne précédente normalement
|
||||
else if (NR > 1) {
|
||||
print prev
|
||||
prev = current
|
||||
}
|
||||
else {
|
||||
prev = current
|
||||
}
|
||||
}
|
||||
END {
|
||||
# Imprimer la dernière ligne
|
||||
if (prev != "") print prev
|
||||
}
|
||||
' "$file" > "$file.tmp"
|
||||
|
||||
# Vérifier si le fichier a changé
|
||||
if ! cmp -s "$file" "$file.tmp"; then
|
||||
mv "$file.tmp" "$file"
|
||||
echo " ✅ $file modifié"
|
||||
modified=$((modified + 1))
|
||||
else
|
||||
rm "$file.tmp"
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "✨ Terminé ! $modified fichier(s) modifié(s)"
|
||||
@@ -1,69 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Script pour corriger les liens restants après refactorisation DDD
|
||||
|
||||
set -e
|
||||
|
||||
echo "🔗 Correction des liens restants..."
|
||||
|
||||
# 1. Corriger les liens docs/adr/ → adr/ dans index.md et technical.md
|
||||
echo " → Correction des liens ADR dans index.md et technical.md..."
|
||||
find docs -name "index.md" -o -name "technical.md" -o -name "TECHNICAL.md" | while read file; do
|
||||
if [ -f "$file" ]; then
|
||||
sed -i 's|docs/adr/|adr/|g' "$file"
|
||||
fi
|
||||
done
|
||||
|
||||
# 2. Corriger les liens vers anciens noms de fichiers numérotés
|
||||
echo " → Correction des liens vers anciens noms de fichiers..."
|
||||
|
||||
# Dans content/
|
||||
find docs/domains/content -type f -name "*.md" -exec sed -i \
|
||||
-e 's|05-interactions-navigation\.md|../../recommendation/rules/interactions-navigation.md|g' \
|
||||
-e 's|18-detection-contenu-protege\.md|detection-contenu-protege.md|g' \
|
||||
{} \;
|
||||
|
||||
# Dans moderation/
|
||||
find docs/domains/moderation -type f -name "*.md" -exec sed -i \
|
||||
-e 's|18-detection-contenu-protege\.md|../../content/rules/detection-contenu-protege.md|g' \
|
||||
-e 's|19-moderation-communautaire\.md|moderation-communautaire.md|g' \
|
||||
{} \;
|
||||
|
||||
# Dans premium/
|
||||
find docs/domains/premium -type f -name "*.md" -exec sed -i \
|
||||
-e 's|05-interactions-navigation\.md|../../recommendation/rules/interactions-navigation.md|g' \
|
||||
-e 's|08-mode-offline\.md|mode-offline.md|g' \
|
||||
{} \;
|
||||
|
||||
# Dans recommendation/
|
||||
find docs/domains/recommendation -type f -name "*.md" -exec sed -i \
|
||||
-e 's|05-interactions-navigation\.md|interactions-navigation.md|g' \
|
||||
-e 's|ANNEXE-POST-MVP\.md|../../_shared/rules/ANNEXE-POST-MVP.md|g' \
|
||||
{} \;
|
||||
|
||||
# 3. Corriger les liens relatifs vers ADR depuis les domaines
|
||||
echo " → Correction des liens ADR depuis les domaines..."
|
||||
find docs/domains -type f -name "*.md" -exec sed -i \
|
||||
-e 's|\.\./adr/|../../../adr/|g' \
|
||||
{} \;
|
||||
|
||||
# 4. Corriger le lien dans recommendation/features/recommendation/README.md
|
||||
if [ -f "docs/domains/recommendation/features/recommendation/README.md" ]; then
|
||||
sed -i 's|\.\./rules/|../../rules/|g' docs/domains/recommendation/features/recommendation/README.md
|
||||
fi
|
||||
|
||||
# 5. Corriger les liens dans mobile/ vers adr/
|
||||
find docs/mobile -type f -name "*.md" -exec sed -i \
|
||||
-e 's|\.\./adr/010-frontend-mobile\.md|../adr/012-frontend-mobile.md|g' \
|
||||
{} \;
|
||||
|
||||
# 6. Corriger liens dans compliance/
|
||||
if [ -f "docs/compliance/stores-submission.md" ]; then
|
||||
sed -i 's|../adr/010-frontend-mobile\.md|../adr/012-frontend-mobile.md|g' docs/compliance/stores-submission.md
|
||||
fi
|
||||
|
||||
# 7. Corriger le lien vers sequences/scoring-recommandation.md qui n'existe pas
|
||||
find docs/domains/recommendation -type f -name "README.md" -exec sed -i \
|
||||
-e 's|sequences/scoring-recommandation\.md|(à créer)|g' \
|
||||
{} \;
|
||||
|
||||
echo "✅ Correction des liens restants terminée!"
|
||||
@@ -1,67 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Script pour supprimer les liens cassés vers des fichiers inexistants
|
||||
|
||||
set -e
|
||||
|
||||
echo "🗑️ Suppression des liens cassés..."
|
||||
|
||||
# 1. Supprimer les liens vers ADR inexistants dans index.md
|
||||
echo " → Nettoyage de index.md..."
|
||||
if [ -f "docs/index.md" ]; then
|
||||
sed -i \
|
||||
-e '/adr\/010-commandes-volant\.md/d' \
|
||||
-e '/adr\/011-conformite-stores-carplay-android-auto\.md/d' \
|
||||
docs/index.md
|
||||
fi
|
||||
|
||||
# 2. Corriger les numéros ADR incorrects dans technical.md
|
||||
echo " → Correction des numéros ADR dans technical.md..."
|
||||
if [ -f "docs/technical.md" ]; then
|
||||
sed -i \
|
||||
-e 's|adr/018-notifications-push\.md|adr/017-notifications-geolocalisees.md|g' \
|
||||
docs/technical.md
|
||||
fi
|
||||
|
||||
# 3. Supprimer les liens vers fichiers d'analyse inexistants dans ADR
|
||||
echo " → Nettoyage des liens dans les ADR..."
|
||||
find docs/adr -type f -name "*.md" -exec sed -i \
|
||||
-e 's|\[.*\](../architecture/database/schema\.md)||g' \
|
||||
-e 's|\[.*\](../INCONSISTENCIES-ANALYSIS\.md[^)]*)||g' \
|
||||
-e 's|\[.*\](\.\.\/ANALYSE_LIBRAIRIES_GO\.md)||g' \
|
||||
-e 's|\[.*\](../../README\.md)||g' \
|
||||
-e 's|\[.*\](../../TECHNICAL\.md)||g' \
|
||||
{} \;
|
||||
|
||||
# 4. Corriger les numéros ADR dans adr/014-organisation-monorepo.md
|
||||
if [ -f "docs/adr/014-organisation-monorepo.md" ]; then
|
||||
sed -i 's|020-strategie-cicd-monorepo\.md|022-strategie-cicd-monorepo.md|g' docs/adr/014-organisation-monorepo.md
|
||||
fi
|
||||
|
||||
# 5. Corriger les numéros ADR dans adr/020-librairies-flutter.md
|
||||
if [ -f "docs/adr/020-librairies-flutter.md" ]; then
|
||||
sed -i \
|
||||
-e 's|018-librairies-flutter\.md|020-librairies-flutter.md|g' \
|
||||
-e 's|010-frontend-mobile\.md|012-frontend-mobile.md|g' \
|
||||
docs/adr/020-librairies-flutter.md
|
||||
fi
|
||||
|
||||
# 6. Corriger le lien ADR dans domains/recommendation/rules/interactions-navigation.md
|
||||
if [ -f "docs/domains/recommendation/rules/interactions-navigation.md" ]; then
|
||||
sed -i 's|../../../adr/010-frontend-mobile\.md|../../../adr/012-frontend-mobile.md|g' \
|
||||
docs/domains/recommendation/rules/interactions-navigation.md
|
||||
fi
|
||||
|
||||
# 7. Corriger les liens dans domains/README.md
|
||||
if [ -f "docs/domains/README.md" ]; then
|
||||
sed -i \
|
||||
-e 's|\[📖 Règles métier par numéro\](../regles-metier/)||g' \
|
||||
-e 's|\[🏛️ ADR (Architecture Decision Records)\](../../../adr/)|[🏛️ ADR (Architecture Decision Records)](../adr/)|g' \
|
||||
-e 's|\[⚖️ Documentation légale\](../legal/)|[⚖️ Documentation légale](../legal/README.md)|g' \
|
||||
-e 's|\[🖥️ Interfaces UI\](../interfaces/)|[🖥️ Interfaces UI](../interfaces/README.md)|g' \
|
||||
docs/domains/README.md
|
||||
fi
|
||||
|
||||
# 8. Nettoyer les lignes vides créées par les suppressions
|
||||
find docs -type f -name "*.md" -exec sed -i '/^$/N;/^\n$/d' {} \;
|
||||
|
||||
echo "✅ Liens cassés supprimés/corrigés!"
|
||||
Reference in New Issue
Block a user