-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathModuleUpdateLookup.ps1.txt
More file actions
68 lines (56 loc) · 1.87 KB
/
Copy pathModuleUpdateLookup.ps1.txt
File metadata and controls
68 lines (56 loc) · 1.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
param($ResolvedModuleName, $IncludePrerelease)
$ProgressPreference = 'SilentlyContinue'
$WarningPreference = 'SilentlyContinue'
$InformationPreference = 'SilentlyContinue'
$VerbosePreference = 'SilentlyContinue'
$ErrorActionPreference = 'Stop'
$repositoryName = 'PSGallery'
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
Repository = $repositoryName
Version = $versionText
}
}
$stableItem = Find-Module $ResolvedModuleName -Repository $repositoryName -ErrorAction Stop -WarningAction SilentlyContinue
$prereleaseItem = if ($IncludePrerelease) {
Find-Module $ResolvedModuleName -Repository $repositoryName -AllowPrerelease -ErrorAction Stop -WarningAction SilentlyContinue
}
else {
$null
}
[pscustomobject]@{
SourceRepository = $repositoryName
Stable = ConvertTo-VersionInfo -Item $stableItem -Channel 'Stable'
Prerelease = ConvertTo-VersionInfo -Item $prereleaseItem -Channel 'Prerelease'
}