ps/Modules/Cole.PowerShell.Developer/Scratch/each orbversion all packages installed by tier.ps1

45 lines
2.1 KiB
PowerShell
Raw Normal View History

2023-05-30 22:51:22 -07:00
each orbversion all packages installed to that orb version -> latest per package id per orb version
Checkpoint-EC2Instances -ProfileName temp-dev; Checkpoint-EC2Instances -ProfileName temp-qa; Checkpoint-EC2Instances -ProfileName temp-prod;
$sb = {
$version = Get-OrbVersion
$packages = Get-LocallyInstalledChocoPackages -LimitOutput
return @{ Version = $version; Packages = $packages; }
}
$devResults = Invoke-Command -ComputerName (Get-CachedInstances -ProfileName temp-dev -App -Mic -Web).Hostname -ScriptBlock $sb -ErrorAction Ignore
$qaResults = Invoke-Command -ComputerName (Get-CachedInstances -ProfileName temp-qa -App -Mic -Web).Hostname -ScriptBlock $sb -ErrorAction Ignore
$prodResults = Invoke-Command -ComputerName (Get-CachedInstances -ProfileName temp-prod -App -Mic -Web).Hostname -ScriptBlock $sb -ErrorAction Ignore
$allResults = $devResults + $qaResults + $prodResults
$finalHash = @{}
foreach ($result in $allResults) {
if (Test-StringIsNullOrWhitespace -Value $result.Version) { continue }
$rawOrbVersion = [Version]$result.Version
$orbVersion = ([Version]::new($rawOrbVersion.Major, $rawOrbVersion.Minor, $rawOrbVersion.Build)).toString()
if ($null -eq $finalHash[$orbVersion]) {
$finalHash[$orbVersion] = @{}
}
foreach ($package in $result.Packages) {
$packageId = ($package -split '\|')[0]
$packageVersion = (($package -split '\|')[1] -split '-')[0]
if ($null -eq $finalHash[$orbVersion][$packageId]) {
$finalHash[$orbVersion][$packageId] = $packageVersion
} else {
try {
# skip -pre collisions for now
$lastHashVersion = [Version]$finalHash[$orbVersion][$packageId]
$currentHashVersion = [Version]$packageVersion
if ($lastHashVersion -lt $currentHashVersion) {
$finalHash[$orbVersion][$packageId] = $packageVersion
}
} catch {
Write-Host "Could not parse [$($finalHash[$orbVersion][$packageId])] or [$packageVersion] as a version for [$packageId]"
}
}
}
}