# 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