netgescon-master/docs/05-backup-unificazione/scripts-processo/verify-docs-unification.ps1
Pikappa2 480e7eafbd 🎯 NETGESCON - Setup iniziale repository completo
📋 Commit iniziale con:
-  Documentazione unificata in docs/
-  Codice Laravel in netgescon-laravel/
-  Script automazione in scripts/
-  Configurazione sync rsync
-  Struttura organizzata e pulita

🔄 Versione: 2025.07.19-1644
🎯 Sistema pronto per Git distribuito
2025-07-19 16:44:47 +02:00

222 lines
7.7 KiB
PowerShell

# Script di Verifica Unificazione Documentazione NetGescon
# Data: 18/07/2025
# Scopo: Verificare che tutti i file importanti siano stati unificati correttamente
Write-Host "🔍 NETGESCON - VERIFICA UNIFICAZIONE DOCUMENTAZIONE" -ForegroundColor Cyan
Write-Host "=====================================================" -ForegroundColor Cyan
$BaseDir = "u:\home\michele\netgescon"
$UnifiedDir = "$BaseDir\DOCS-UNIFIED"
if (!(Test-Path $UnifiedDir)) {
Write-Host "❌ Cartella DOCS-UNIFIED non trovata!" -ForegroundColor Red
Write-Host " Eseguire prima: .\unify-docs-netgescon.ps1" -ForegroundColor Yellow
exit 1
}
Write-Host "`n📋 VERIFICA FILE CRITICI..." -ForegroundColor Yellow
# Definisci file critici che DEVONO essere presenti
$CriticalFiles = @{
"00-NAVIGAZIONE" = @(
"00-INDICE-MASTER-NETGESCON.md",
"README-TRANSITION-COMPLETE.md"
)
"01-MANUALI-OPERATIVI" = @(
"00-MANUALE-COMPLETO-NETGESCON-UNIFICATO.md",
"PROCEDURA_OPERATIVA.md"
)
"02-DOCUMENTAZIONE-TECNICA" = @(
"FEATURES-INVENTORY-COMPLETE.md",
"04-DATABASE-STRUTTURE.md",
"05-INTERFACCIA-UNIVERSALE.md"
)
"03-ARCHITETTURA-SISTEMA" = @(
"ARCHITETTURA_MODULARE_COMPLETATA.md",
"RIEPILOGO_ARCHITETTURA_COMPLETATA.md"
)
"05-MIGRAZIONE-LINUX" = @(
"DEPLOYMENT-GUIDE-COMPLETE.md"
)
"06-SCRIPTS-TOOLS" = @(
"fix-vscode-install.sh"
)
}
$MissingFiles = @()
$FoundFiles = @()
foreach ($folder in $CriticalFiles.Keys) {
Write-Host "`n📂 Verifica $folder..." -ForegroundColor White
foreach ($file in $CriticalFiles[$folder]) {
$FilePath = "$UnifiedDir\$folder\$file"
if (Test-Path $FilePath) {
Write-Host "$file" -ForegroundColor Green
$FoundFiles += "$folder\$file"
} else {
Write-Host "$file - MANCANTE!" -ForegroundColor Red
$MissingFiles += "$folder\$file"
}
}
}
Write-Host "`n📊 RISULTATI VERIFICA:" -ForegroundColor Yellow
# Statistiche generali
$TotalFiles = (Get-ChildItem $UnifiedDir -Recurse -File).Count
$TotalSize = [math]::Round((Get-ChildItem $UnifiedDir -Recurse -File | Measure-Object -Property Length -Sum).Sum / 1MB, 2)
$TotalFolders = (Get-ChildItem $UnifiedDir -Directory).Count
Write-Host "📄 File totali unificati: $TotalFiles" -ForegroundColor White
Write-Host "💾 Dimensione totale: $TotalSize MB" -ForegroundColor White
Write-Host "📁 Cartelle principali: $TotalFolders" -ForegroundColor White
Write-Host "`n✅ File critici trovati: $($FoundFiles.Count)" -ForegroundColor Green
if ($MissingFiles.Count -gt 0) {
Write-Host "❌ File critici mancanti: $($MissingFiles.Count)" -ForegroundColor Red
Write-Host "`n📝 FILE MANCANTI:" -ForegroundColor Red
foreach ($file in $MissingFiles) {
Write-Host " - $file" -ForegroundColor Red
}
} else {
Write-Host "🎉 Tutti i file critici sono presenti!" -ForegroundColor Green
}
Write-Host "`n📂 STRUTTURA CARTELLE CREATA:" -ForegroundColor Yellow
Get-ChildItem $UnifiedDir -Directory | ForEach-Object {
$FileCount = (Get-ChildItem $_.FullName -Recurse -File).Count
$FolderSize = [math]::Round((Get-ChildItem $_.FullName -Recurse -File | Measure-Object -Property Length -Sum).Sum / 1KB, 1)
Write-Host " 📁 $($_.Name): $FileCount file ($FolderSize KB)" -ForegroundColor White
}
# Verifica presenza di file duplicati
Write-Host "`n🔍 VERIFICA DUPLICATI..." -ForegroundColor Yellow
$AllFiles = Get-ChildItem $UnifiedDir -Recurse -File
$FileHashes = @{}
$Duplicates = @()
foreach ($file in $AllFiles) {
$hash = Get-FileHash $file.FullName -Algorithm MD5
if ($FileHashes.ContainsKey($hash.Hash)) {
$Duplicates += @{
"Original" = $FileHashes[$hash.Hash]
"Duplicate" = $file.FullName
}
} else {
$FileHashes[$hash.Hash] = $file.FullName
}
}
if ($Duplicates.Count -gt 0) {
Write-Host "⚠️ Trovati $($Duplicates.Count) file duplicati:" -ForegroundColor Yellow
foreach ($dup in $Duplicates) {
Write-Host " - $($dup.Original)" -ForegroundColor Gray
Write-Host " - $($dup.Duplicate)" -ForegroundColor Gray
Write-Host "" -ForegroundColor Gray
}
} else {
Write-Host "✅ Nessun duplicato trovato" -ForegroundColor Green
}
# Genera report di verifica
$ReportFile = "$UnifiedDir\REPORT-VERIFICA-UNIFICAZIONE.md"
$Report = @"
# 📋 REPORT VERIFICA UNIFICAZIONE DOCUMENTAZIONE
**Data Verifica:** $(Get-Date -Format "dd/MM/yyyy HH:mm")
**Script:** verify-docs-unification.ps1
## 📊 STATISTICHE GENERALI
- **File Totali:** $TotalFiles
- **Dimensione Totale:** $TotalSize MB
- **Cartelle Principali:** $TotalFolders
## FILE CRITICI
- **Trovati:** $($FoundFiles.Count)
- **Mancanti:** $($MissingFiles.Count)
### 📄 File Critici Presenti:
"@
foreach ($file in $FoundFiles) {
$Report += "`n- ✅ $file"
}
if ($MissingFiles.Count -gt 0) {
$Report += "`n`n### ❌ File Critici Mancanti:"
foreach ($file in $MissingFiles) {
$Report += "`n- ❌ $file"
}
}
$Report += @"
## 📂 STRUTTURA CARTELLE
"@
Get-ChildItem $UnifiedDir -Directory | ForEach-Object {
$FileCount = (Get-ChildItem $_.FullName -Recurse -File).Count
$FolderSize = [math]::Round((Get-ChildItem $_.FullName -Recurse -File | Measure-Object -Property Length -Sum).Sum / 1KB, 1)
$Report += "`n- **$($_.Name)**: $FileCount file ($FolderSize KB)"
}
if ($Duplicates.Count -gt 0) {
$Report += "`n`n## ⚠️ FILE DUPLICATI ($($Duplicates.Count) trovati)"
foreach ($dup in $Duplicates) {
$Report += "`n- Original: $($dup.Original.Replace($UnifiedDir, ""))"
$Report += "`n- Duplicate: $($dup.Duplicate.Replace($UnifiedDir, ""))"
$Report += ""
}
} else {
$Report += "`n`n## ✅ DUPLICATI: Nessun duplicato trovato"
}
$Report += @"
## 🎯 VALUTAZIONE FINALE
"@
if ($MissingFiles.Count -eq 0 -and $Duplicates.Count -eq 0) {
$Report += "`n**✅ ECCELLENTE** - Unificazione completata con successo!"
$Status = "ECCELLENTE"
} elseif ($MissingFiles.Count -le 2 -and $Duplicates.Count -le 3) {
$Report += "`n**⚠️ BUONA** - Unificazione riuscita con piccoli problemi da risolvere"
$Status = "BUONA"
} else {
$Report += "`n**❌ PROBLEMI** - Necessaria revisione unificazione"
$Status = "PROBLEMI"
}
$Report += @"
## 🚀 PROSSIMI PASSI
1. [ ] Trasferire DOCS-UNIFIED su server Linux
2. [ ] Aggiornare riferimenti incrociati
3. [ ] Validare completezza contenuti
4. [ ] Configurare sincronizzazione automatica
---
*Report generato automaticamente da verify-docs-unification.ps1*
"@
$Report | Out-File -FilePath $ReportFile -Encoding UTF8 -Force
Write-Host "`n📋 REPORT GENERATO:" -ForegroundColor Cyan
Write-Host " $ReportFile" -ForegroundColor White
Write-Host "`n🎯 VALUTAZIONE FINALE: $Status" -ForegroundColor $(if($Status -eq "ECCELLENTE") {"Green"} elseif($Status -eq "BUONA") {"Yellow"} else {"Red"})
if ($Status -eq "ECCELLENTE") {
Write-Host "`n🚀 PRONTO PER IL TRASFERIMENTO!" -ForegroundColor Green
Write-Host " Comando per trasferire su Linux:" -ForegroundColor White
Write-Host " scp -r $UnifiedDir netgescon@192.168.0.200:/var/www/netgescon-complete/" -ForegroundColor Gray
} elseif ($Status -eq "BUONA") {
Write-Host "`n⚠️ Rivedere i problemi minori prima del trasferimento" -ForegroundColor Yellow
} else {
Write-Host "`n❌ Rivedere l'unificazione prima di procedere" -ForegroundColor Red
}
Write-Host "`nPremere Enter per continuare..." -ForegroundColor Yellow
Read-Host