- Notifications
You must be signed in to change notification settings - Fork 187
/
Copy pathSetModuleVersion.ps1
57 lines (49 loc) · 1.96 KB
/
SetModuleVersion.ps1
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
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
functionSet-ModuleVersion {
Param(
[string] $Version,
[string] $Prerelease,
[switch] $SetAuthModule,
[switch] $SetBetaModule,
[switch] $SetV1Module
)
$ModuleMetadataPath=Join-Path$PSScriptRoot"..\..\config\ModuleMetadata.json"
$ModuleMetadata=Get-Content$ModuleMetadataPath|ConvertFrom-Json
if ($SetAuthModule.IsPresent) {
$ModuleMetadata.versions.authentication.version=$Version
$ModuleMetadata.versions.authentication.prerelease=$Prerelease
}
if ($SetBetaModule.IsPresent) {
$ModuleMetadata.versions.beta.version=$Version
$ModuleMetadata.versions.beta.prerelease=$Prerelease
}
if ($SetV1Module.IsPresent) {
$ModuleMetadata.versions.'v1.0'.version =$Version
$ModuleMetadata.versions.'v1.0'.prerelease =$Prerelease
}
$ModuleMetadata|ConvertTo-Json-Depth 5|Out-File$ModuleMetadataPath-Encoding utf8
}
functionInvoke-BumpMinorOrPreReleaseVersion {
Param(
[string] $FullVersion,
[string] $PreReleaseTag
)
$versionSegments=$FullVersion-split"-"
if ($versionSegments.Count-gt1-and [string]::IsNullOrWhiteSpace($PreReleaseTag) -eq$false) {
$PreReleaseVersion=$versionSegments[1] -split$PreReleaseTag
if ($PreReleaseVersion.Count-gt1) {
$version= [System.Version]("$($versionSegments[0]).$($PreReleaseVersion[1])")
}
else {
$version= [System.Version]("$($versionSegments[0]).0")
}
$newVersion="$($version.Major).$($version.Minor).$($version.Build)"
$newPrereleaseVersion="$PreReleaseTag$($version.Revision+1)"
}
else {
$version= [System.Version]("$($versionSegments[0])")
$newVersion="$($version.Major).$($version.Minor+1).0"
}
return$newVersion,$newPrereleaseVersion
}