resources/update/ModuleUpdateLookup.ps1.txt
|
param($ResolvedModuleName, $IncludePrerelease) $ProgressPreference = 'SilentlyContinue' $WarningPreference = 'SilentlyContinue' $InformationPreference = 'SilentlyContinue' $VerbosePreference = 'SilentlyContinue' $ErrorActionPreference = 'Stop' function Get-PrereleaseLabel { param([object]$Item) if ($null -eq $Item) { return $null } $metadata = $Item.AdditionalMetadata if ($metadata -is [System.Collections.IDictionary]) { return $metadata['Prerelease'] } if ($null -ne $metadata -and $metadata.PSObject.Properties.Name -contains 'Prerelease') { return $metadata.Prerelease } if ($Item.PSObject.Properties.Name -contains 'Prerelease') { return $Item.Prerelease } return $null } function ConvertTo-VersionInfo { param( [object]$Item, [string]$Channel ) if ($null -eq $Item) { return $null } $versionText = $Item.Version.ToString() $prereleaseLabel = Get-PrereleaseLabel -Item $Item if (-not [string]::IsNullOrWhiteSpace($prereleaseLabel) -and $versionText -notmatch '-[^-]+$') { $versionText = "$versionText-$prereleaseLabel" } return [pscustomobject]@{ ModuleName = $ResolvedModuleName Channel = $Channel Version = $versionText } } $stableItem = Find-Module $ResolvedModuleName -ErrorAction Stop -WarningAction SilentlyContinue $prereleaseItem = if ($IncludePrerelease) { Find-Module $ResolvedModuleName -AllowPrerelease -ErrorAction Stop -WarningAction SilentlyContinue } else { $null } [pscustomobject]@{ Stable = ConvertTo-VersionInfo -Item $stableItem -Channel 'Stable' Prerelease = ConvertTo-VersionInfo -Item $prereleaseItem -Channel 'Prerelease' } |