g-optimization.ps1
|
# Scores each g-*.ps1 script by capability density (caps / non-blank non-comment lines). # Low-density scripts with >0 caps are consolidation candidates. . (Join-Path $PSScriptRoot 'g-error-vectors.ps1') $scripts = Get-ChildItem -Path $PSScriptRoot -Filter 'g-*.ps1' | Where-Object { $_.Name -notin @('g-capabilities.ps1','g-error-vectors.ps1','g-registry.ps1', 'g-optimization.ps1','g-health.ps1','g-matrix-resolve.ps1') } | Sort-Object Name $scored = foreach ($s in $scripts) { $caps = Get-ScriptCapabilities -Path $s.FullName $lines = @(Get-Content $s.FullName | Where-Object { $_.Trim() -and $_.Trim() -notmatch '^#' }).Count $score = if ($lines -gt 0) { [Math]::Round($caps.Count / $lines, 3) } else { 0 } [pscustomobject]@{ Script = $s.Name; Caps = $caps.Count; Lines = $lines; Score = $score } } Write-Host 'Optimization scores (caps / non-blank non-comment lines):' Write-Host (' {0,-34} {1,4} {2,5} {3,5}' -f 'Script', 'Caps', 'Lines', 'Score') foreach ($r in ($scored | Sort-Object Score)) { Write-Host (' {0,-34} {1,4} {2,5} {3,5}' -f $r.Script, $r.Caps, $r.Lines, $r.Score) } $threshold = 0.04 $candidates = @($scored | Where-Object { $_.Score -lt $threshold -and $_.Caps -gt 0 }) if ($candidates) { Write-Host "`nConsolidation candidates (score < $threshold):" foreach ($c in $candidates) { Write-Host " $($c.Script) score $($c.Score) -- low cap density, review for folding" } } exit 0 |