param( [string]$Dest = "I:\SOFTWARE\PYTHON_SRV\PYTHON_LOCAL\GemmaReport" ) $src = $PSScriptRoot $exclude_dirs = @('venv', '.git', '__pycache__', 'logs', 'output') $exclude_files = @('sent_tracker.db', 'osservatorio_tracker.db', 'deploy_exclude.txt', 'deploy.bat', 'deploy.ps1') Write-Host "Deploy GemmaReport: $src -> $Dest" # Crea directory root con .NET (piu robusto su DFS) [System.IO.Directory]::CreateDirectory($Dest) | Out-Null Write-Host "Dest: $Dest" Get-ChildItem $src -Recurse | Where-Object { $rel = $_.FullName.Substring($src.Length + 1) $parts = $rel -split '\\' $skip = ($exclude_dirs | Where-Object { $parts -contains $_ }).Count -gt 0 $skip = $skip -or ($exclude_files -contains $_.Name) $skip = $skip -or ($_.Extension -eq '.pyc') -not $skip } | ForEach-Object { $rel = $_.FullName.Substring($src.Length + 1) $target = [System.IO.Path]::Combine($Dest, $rel) $dir = [System.IO.Path]::GetDirectoryName($target) [System.IO.Directory]::CreateDirectory($dir) | Out-Null if (-not $_.PSIsContainer) { [System.IO.File]::Copy($_.FullName, $target, $true) Write-Host " -> $rel" } } Write-Host "" Write-Host "Deploy completato."