45 lines
2.1 KiB
PowerShell
45 lines
2.1 KiB
PowerShell
|
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]"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|