56 lines
1.8 KiB
PowerShell
56 lines
1.8 KiB
PowerShell
# Fix duplicate "using StellaOps.TestKit;" statements in C# files
|
|
# The pattern shows files have this statement both at top (correct) and in middle (wrong)
|
|
# This script removes all occurrences AFTER the first one
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
$srcPath = Join-Path $PSScriptRoot "..\..\src"
|
|
$pattern = "using StellaOps.TestKit;"
|
|
|
|
# Find all .cs files containing the pattern
|
|
$files = Get-ChildItem -Path $srcPath -Recurse -Filter "*.cs" |
|
|
Where-Object { (Get-Content $_.FullName -Raw) -match [regex]::Escape($pattern) }
|
|
|
|
Write-Host "Found $($files.Count) files with 'using StellaOps.TestKit;'" -ForegroundColor Cyan
|
|
|
|
$fixedCount = 0
|
|
$errorCount = 0
|
|
|
|
foreach ($file in $files) {
|
|
try {
|
|
$lines = Get-Content $file.FullName
|
|
$newLines = @()
|
|
$foundFirst = $false
|
|
$removedAny = $false
|
|
|
|
foreach ($line in $lines) {
|
|
if ($line.Trim() -eq $pattern) {
|
|
if (-not $foundFirst) {
|
|
# Keep the first occurrence
|
|
$newLines += $line
|
|
$foundFirst = $true
|
|
} else {
|
|
# Skip subsequent occurrences
|
|
$removedAny = $true
|
|
}
|
|
} else {
|
|
$newLines += $line
|
|
}
|
|
}
|
|
|
|
if ($removedAny) {
|
|
$newLines | Set-Content -Path $file.FullName -Encoding UTF8
|
|
Write-Host "Fixed: $($file.Name)" -ForegroundColor Green
|
|
$fixedCount++
|
|
}
|
|
} catch {
|
|
Write-Host "Error processing $($file.FullName): $_" -ForegroundColor Red
|
|
$errorCount++
|
|
}
|
|
}
|
|
|
|
Write-Host ""
|
|
Write-Host "Summary:" -ForegroundColor Cyan
|
|
Write-Host " Files fixed: $fixedCount" -ForegroundColor Green
|
|
Write-Host " Errors: $errorCount" -ForegroundColor $(if ($errorCount -gt 0) { "Red" } else { "Green" })
|