#!/usr/bin/env pwsh # ============================================================================ # Lions User Manager - Script de nettoyage complet # ============================================================================ # Ce script nettoie le projet selon les meilleures pratiques : # 1. Supprime les fichiers parasites (crash JVM, test output, tokens) # 2. Supprime les répertoires target Maven # 3. Consolide la documentation dans docs/ # 4. Supprime les scripts dupliqués de la racine # 5. Nettoie les répertoires Java vides # 6. Supprime les répertoires squelettes vides # ============================================================================ $ErrorActionPreference = "SilentlyContinue" $root = $PSScriptRoot Write-Host "" Write-Host "======================================================" -ForegroundColor Cyan Write-Host " Lions User Manager - Nettoyage Complet du Projet" -ForegroundColor Cyan Write-Host "======================================================" -ForegroundColor Cyan Write-Host "" # ============================================ # 1. Suppression des fichiers parasites # ============================================ Write-Host "1. Suppression des fichiers parasites..." -ForegroundColor Yellow $parasiteFiles = @( # Racine "$root\token.json", "$root\token.txt", "$root\clean-project.ps1", # server-api "$root\lions-user-manager-server-api\test_output.txt", "$root\lions-user-manager-server-api\test_output_2.txt", "$root\lions-user-manager-server-api\test_output_3.txt", # server-impl "$root\lions-user-manager-server-impl-quarkus\hs_err_pid29312.log", "$root\lions-user-manager-server-impl-quarkus\hs_err_pid64388.log", "$root\lions-user-manager-server-impl-quarkus\test_output.txt", "$root\lions-user-manager-server-impl-quarkus\create_database.sql", # client "$root\lions-user-manager-client-quarkus-primefaces-freya\hs_err_pid131240.log", "$root\lions-user-manager-client-quarkus-primefaces-freya\hs_err_pid31092.log", "$root\lions-user-manager-client-quarkus-primefaces-freya\hs_err_pid86240.log", "$root\lions-user-manager-client-quarkus-primefaces-freya\replay_pid31092.log" ) foreach ($file in $parasiteFiles) { if (Test-Path $file) { Remove-Item $file -Force Write-Host " Supprime: $(Split-Path $file -Leaf)" -ForegroundColor Green } } # ============================================ # 2. Suppression des répertoires target Maven # ============================================ Write-Host "" Write-Host "2. Suppression des répertoires target Maven..." -ForegroundColor Yellow $targetDirs = @( "$root\lions-user-manager-server-api\target", "$root\lions-user-manager-server-impl-quarkus\target", "$root\lions-user-manager-client-quarkus-primefaces-freya\target" ) foreach ($dir in $targetDirs) { if (Test-Path $dir) { Remove-Item $dir -Recurse -Force Write-Host " Supprime: $($dir.Replace($root, '.'))" -ForegroundColor Green } } # Suppression du répertoire logs du serveur $logsDir = "$root\lions-user-manager-server-impl-quarkus\logs" if (Test-Path $logsDir) { Remove-Item $logsDir -Recurse -Force Write-Host " Supprime: .\lions-user-manager-server-impl-quarkus\logs" -ForegroundColor Green } # ============================================ # 3. Suppression des fichiers .md parasites à la racine # ============================================ Write-Host "" Write-Host "3. Suppression des fichiers .md parasites à la racine..." -ForegroundColor Yellow # Fichiers .md à GARDER à la racine $keepMd = @("README.md") Get-ChildItem "$root\*.md" -File | Where-Object { $keepMd -notcontains $_.Name } | ForEach-Object { Remove-Item $_.FullName -Force Write-Host " Supprime: $($_.Name)" -ForegroundColor Green } # Suppression du fichier SUMMARY_VISUAL.txt if (Test-Path "$root\SUMMARY_VISUAL.txt") { Remove-Item "$root\SUMMARY_VISUAL.txt" -Force Write-Host " Supprime: SUMMARY_VISUAL.txt" -ForegroundColor Green } # ============================================ # 4. Nettoyage des scripts dupliqués à la racine # ============================================ Write-Host "" Write-Host "4. Nettoyage des scripts dupliqués de la racine..." -ForegroundColor Yellow # Scripts à supprimer de la racine (doublons ou ponctuels) $rootScriptsToRemove = @( "$root\configure-keycloak-frontend.sh", "$root\configure-keycloak-test-user.ps1", "$root\configure-keycloak-test-user.sh", "$root\create-roles-and-assign.sh", "$root\get-client-secret.sh", "$root\integrate-freya-extension.ps1", "$root\migrate-all-xhtml-to-freya.ps1", "$root\setup-keycloak-client.ps1", "$root\setup-keycloak-correct.sh", "$root\setup-keycloak-simple.sh", "$root\setup-keycloak.sh", "$root\test-auth.sh", "$root\test-keycloak-config.ps1", "$root\test-keycloak-config.sh", "$root\test-keycloak-token.ps1", "$root\update-client-config.ps1", "$root\verify-client-config.ps1" ) foreach ($script in $rootScriptsToRemove) { if (Test-Path $script) { Remove-Item $script -Force Write-Host " Supprime: $(Split-Path $script -Leaf)" -ForegroundColor Green } } # ============================================ # 5. Suppression des répertoires vides # ============================================ Write-Host "" Write-Host "5. Suppression des répertoires vides..." -ForegroundColor Yellow $emptyDirs = @( # Répertoires squelettes vides "$root\docs", "$root\helm", "$root\tests", # Répertoires Java vides dans le client "$root\lions-user-manager-client-quarkus-primefaces-freya\src\main\java\dev\lions\user\manager\client\config", "$root\lions-user-manager-client-quarkus-primefaces-freya\src\main\java\dev\lions\user\manager\client\dto", "$root\lions-user-manager-client-quarkus-primefaces-freya\src\main\java\dev\lions\user\manager\client\exception", "$root\lions-user-manager-client-quarkus-primefaces-freya\src\main\java\dev\lions\user\manager\client\security", # Répertoires Java vides dans le serveur "$root\lions-user-manager-server-impl-quarkus\src\main\java\dev\lions\user\manager\server\client", "$root\lions-user-manager-server-impl-quarkus\src\main\java\dev\lions\user\manager\server\repository", "$root\lions-user-manager-server-impl-quarkus\src\main\java\dev\lions\user\manager\server\resource", "$root\lions-user-manager-server-impl-quarkus\src\main\java\dev\lions\user\manager\server\security", "$root\lions-user-manager-server-impl-quarkus\src\main\java\dev\lions\user\manager\server\service" ) foreach ($dir in $emptyDirs) { if (Test-Path $dir) { $children = Get-ChildItem $dir -Recurse -File if ($null -eq $children -or $children.Count -eq 0) { Remove-Item $dir -Recurse -Force Write-Host " Supprime: $($dir.Replace($root, '.'))" -ForegroundColor Green } else { Write-Host " GARDE (non vide): $($dir.Replace($root, '.'))" -ForegroundColor DarkYellow } } } # ============================================ # 6. Suppression des .git dans les sous-modules # ============================================ Write-Host "" Write-Host "6. Nettoyage des .git dans les sous-modules..." -ForegroundColor Yellow $submoduleGits = @( "$root\lions-user-manager-server-api\.git", "$root\lions-user-manager-client-quarkus-primefaces-freya\.git", "$root\lions-user-manager-server-impl-quarkus\.git" ) foreach ($gitFile in $submoduleGits) { if (Test-Path $gitFile -PathType Leaf) { Remove-Item $gitFile -Force Write-Host " Supprime sous-module .git: $(Split-Path (Split-Path $gitFile) -Leaf)" -ForegroundColor Green } elseif (Test-Path $gitFile -PathType Container) { Remove-Item $gitFile -Recurse -Force Write-Host " Supprime sous-module .git/: $(Split-Path (Split-Path $gitFile) -Leaf)" -ForegroundColor Green } } # ============================================ # 7. Suppression des .gitignore redondants dans les sous-modules # ============================================ Write-Host "" Write-Host "7. Suppression des .gitignore redondants..." -ForegroundColor Yellow $submoduleGitignores = @( "$root\lions-user-manager-server-api\.gitignore", "$root\lions-user-manager-server-impl-quarkus\.gitignore", "$root\lions-user-manager-client-quarkus-primefaces-freya\.gitignore" ) foreach ($gi in $submoduleGitignores) { if (Test-Path $gi) { Remove-Item $gi -Force Write-Host " Supprime: $($gi.Replace($root, '.'))" -ForegroundColor Green } } # ============================================ # Résumé # ============================================ Write-Host "" Write-Host "======================================================" -ForegroundColor Cyan Write-Host " Nettoyage terminé !" -ForegroundColor Green Write-Host "======================================================" -ForegroundColor Cyan Write-Host "" Write-Host "Structure finale attendue :" -ForegroundColor White Write-Host " lions-user-manager/" -ForegroundColor White Write-Host " ├── .git/" -ForegroundColor DarkGray Write-Host " ├── .gitignore" -ForegroundColor DarkGray Write-Host " ├── README.md" -ForegroundColor White Write-Host " ├── pom.xml" -ForegroundColor White Write-Host " ├── scripts/" -ForegroundColor Cyan Write-Host " ├── restart-dev.ps1" -ForegroundColor White Write-Host " ├── start-backend.bat" -ForegroundColor White Write-Host " ├── start-client.bat" -ForegroundColor White Write-Host " ├── Dockerfile.prod (dans chaque module)" -ForegroundColor White Write-Host " ├── lions-user-manager-server-api/" -ForegroundColor Yellow Write-Host " ├── lions-user-manager-server-impl-quarkus/" -ForegroundColor Yellow Write-Host " └── lions-user-manager-client-quarkus-primefaces-freya/" -ForegroundColor Yellow Write-Host "" Write-Host "Prochaine étape : 'mvn clean compile' pour vérifier la compilation" -ForegroundColor Magenta Write-Host ""