-
Notifications
You must be signed in to change notification settings - Fork 124
/
Copy pathpython-version.psm1
45 lines (36 loc) · 1.01 KB
/
python-version.psm1
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
function Convert-Label() {
<#
.SYNOPSIS
Convert generic semver label to native Python label.
#>
param(
[Parameter(Mandatory)]
[string] $label
)
switch ($label) {
"alpha" { return "a" }
"beta" { return "b" }
"rc" { return "rc" }
default { throw "Invalid version label '$label'" }
}
}
function Convert-Version {
<#
.SYNOPSIS
Convert generic semver version to native Python version.
#>
param(
[Parameter(Mandatory)]
[semver] $version,
[char] $delimiter = "."
)
$nativeVersion = "{0}.{1}.{2}" -f $version.Major, $version.Minor, $version.Patch
if ($version.PreReleaseLabel)
{
$preReleaseLabel = $version.PreReleaseLabel.Split($delimiter)
$preReleaseLabelName = Convert-Label -Label $preReleaseLabel[0]
$preReleaseLabelVersion = $preReleaseLabel[1]
$nativeVersion += "${preReleaseLabelName}${preReleaseLabelVersion}"
}
return $nativeVersion
}