-
Notifications
You must be signed in to change notification settings - Fork 3.9k
/
Copy pathASMIncrementVersion.ps1
117 lines (91 loc) · 3.21 KB
/
ASMIncrementVersion.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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
[CmdletBinding()]
Param(
[Parameter(Mandatory=$False, Position=0)]
[String]$Folder,
[Parameter(Mandatory=$False)]
[bool]$Major,
[Parameter(Mandatory=$False)]
[bool]$Minor,
[Parameter(Mandatory=$False)]
[bool]$Patch
)
# Function to update nuspec file
function IncrementVersion([string]$FilePath)
{
$psd1Path = Join-Path $FilePath "\Services\Commands.Utilities\Azure.psd1"
Write-Output "Updating File: $psd1Path"
$content = Get-Content $psd1Path
$matches = ([regex]::matches($content, "ModuleVersion = '([\d\.]+)'"))
$packageVersion = $matches.Groups[1].Value
$version = $packageVersion.Split(".")
$cMajor = $Major
$cMinor = $Minor
$cPatch = $Patch
if ($cMajor -eq $true)
{
$version[0] = 1 + $version[0]
$version[1] = "0"
$version[2] = "0"
}
if ($cMinor -eq $true)
{
$version[1] = 1 + $version[1]
$version[2] = "0"
}
if ($cPatch -eq $true)
{
$version[2] = 1 + $version[2]
}
$version = [String]::Join(".", $version)
Write-Output "Updating version of $psd1Path from $packageVersion to $version"
$content = $content.Replace("ModuleVersion = '$packageVersion'", "ModuleVersion = '$version'")
Set-Content -Path $psd1Path -Value $content -Encoding UTF8
Write-Output "Updating AssemblyInfo.cs inside of $FilePath to $packageVersion"
$assemblyInfos = Get-ChildItem -Path $FilePath -Filter AssemblyInfo.cs -Recurse
ForEach ($assemblyInfo in $assemblyInfos)
{
$content = Get-Content $assemblyInfo.FullName
$content = $content -replace "\[assembly: AssemblyVersion\([\w\`"\.]+\)\]", "[assembly: AssemblyVersion(`"$version`")]"
$content = $content -replace "\[assembly: AssemblyFileVersion\([\w\`"\.]+\)\]", "[assembly: AssemblyFileVersion(`"$version`")]"
Write-Output "Updating assembly version in " $assemblyInfo.FullName
Set-Content -Path $assemblyInfo.FullName -Value $content -Encoding UTF8
}
}
# Function to update nuspec file
function UpdateStorageVersion([string]$FilePath)
{
$psd1Path = Join-Path $FilePath "\Services\Commands.Utilities\Azure.psd1"
Write-Output "Updating File: $psd1Path"
$content = Get-Content $psd1Path
$matches = ([regex]::matches($content, "; ModuleVersion = '([\d\.]+)'"))
$packageVersion = $matches.Groups[1].Value
$version = $packageVersion.Split(".")
$cMajor = $Major
$cMinor = $Minor
$cPatch = $Patch
if ($cMajor -eq $true)
{
$version[0] = 1 + $version[0]
$version[1] = "0"
$version[2] = "0"
}
if ($cMinor -eq $true)
{
$version[1] = 1 + $version[1]
$version[2] = "0"
}
if ($cPatch -eq $true)
{
$version[2] = 1 + $version[2]
}
$version = [String]::Join(".", $version)
Write-Output "Updating version of $psd1Path from $packageVersion to $version"
$content = $content.Replace("; ModuleVersion = '$packageVersion'", "; ModuleVersion = '$version'")
Set-Content -Path $psd1Path -Value $content -Encoding UTF8
}
if (!$Folder)
{
$Folder = "$PSScriptRoot\..\src\ServiceManagement"
}
IncrementVersion $Folder
UpdateStorageVersion $Folder