Skip to content

Commit 70b9a28

Browse files
committed
Merge pull request Azure#116 from Azure/dev
.
2 parents 6b38643 + 50e0e90 commit 70b9a28

File tree

2 files changed

+67
-17
lines changed

2 files changed

+67
-17
lines changed

tools/AzureRM/AzureRM.psd1

32 Bytes
Binary file not shown.

tools/AzureRM/AzureRM.psm1

Lines changed: 67 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
#Requires -RunAsAdministrator
2+
3+
$AzureRMProfileVersion = "0.9.8";
4+
15
$AzureRMModules = @{
26
"Azure.Storage" = "0.9.8";
37
"AzureRM.ApiManagement" = "0.9.8";
@@ -25,12 +29,31 @@ $AzureRMModules = @{
2529
"AzureRM.Websites" = "0.9.8"
2630
}
2731

32+
function Import-ModuleWithVersionCheck([string]$Name,[string]$MinimumVersion,[string]$Repository,[string]$Scope)
33+
{
34+
$minVer = $MinimumVersion
35+
$maxVer = "$($minVer.Split(".")[0]).9999.0"
36+
try {
37+
if ([string]::IsNullOrWhiteSpace($Repository))
38+
{
39+
Install-Module -Name $Name -Scope $Scope -MinimumVersion $minVer -MaximumVersion $maxVer -ErrorAction Stop
40+
} else {
41+
Install-Module -Name $Name -Repository $Repository -Scope $Scope -MinimumVersion $minVer -MaximumVersion $maxVer -ErrorAction Stop
42+
}
43+
$v = (Get-InstalledModule -Name $Name)[0].Version.ToString()
44+
Write-Output "$Name $v installed..."
45+
} catch {
46+
Write-Warning "Skipping $Name package..."
47+
Write-Warning $_
48+
}
49+
}
50+
2851
<#
2952
.Synopsis
3053
Install Azure Resource Manager cmdlet modules
3154
3255
.Description
33-
Installs all the available Azure Resource Manager cmdlet modules that start with "AzureRM".
56+
Installs all the available Azure Resource Manager cmdlet modules.
3457
3558
.Parameter Repository
3659
Limit the search for "AzureRM" cmdlets in a specific repository.
@@ -41,12 +64,11 @@ $AzureRMModules = @{
4164
function Update-AzureRM
4265
{
4366
param(
44-
[Parameter(Position=0; Mandatory = $false)]
67+
[Parameter(Position=0, Mandatory = $false)]
4568
[string]
46-
$Repository;
47-
48-
[Parameter(Position=1; Mandatory = $false)]
49-
[ValidateSet("CurrentUser";"AllUsers")]
69+
$Repository,
70+
[Parameter(Position=1, Mandatory = $false)]
71+
[ValidateSet("CurrentUser","AllUsers")]
5072
[string]
5173
$Scope)
5274

@@ -57,19 +79,47 @@ function Update-AzureRM
5779

5880
Write-Output "Installing AzureRM modules."
5981

60-
$result = $AzureRMModules | ForEach {
82+
Import-ModuleWithVersionCheck "AzureRM.Profile" $AzureRMProfileVersion $Repository $Scope
83+
84+
$result = $AzureRMModules.Keys | ForEach {
6185
Start-Job -Name $_ -ScriptBlock {
62-
if ([string]::IsNullOrWhiteSpace($args[1]))
63-
{
64-
Install-Module -Name $args[0] -Scope $args[2]
65-
} else {
66-
Install-Module -Name $args[0] -Repository $args[1] -Scope $args[2]
67-
}
68-
$v = (Get-InstalledModule -Name $args[0])[0].Version.ToString()
69-
Write-Output "$($args[0]) $v installed..."
70-
} -ArgumentList $_; $Repository; $Scope }
86+
Import-ModuleWithVersionCheck $args[0] $args[1] $args[2] $args[3]
87+
} -ArgumentList $_, $AzureRMModules[$_], $Repository, $Scope }
7188

72-
$AzureRMModules | ForEach {Get-Job -Name $_ | Wait-Job | Receive-Job }
89+
$AzureRMModules.Keys | ForEach {Get-Job -Name $_ | Wait-Job | Receive-Job }
7390
}
91+
92+
<#
93+
.Synopsis
94+
Remove Azure Resource Manager cmdlet modules
95+
96+
.Description
97+
Removes all installed Azure Resource Manager cmdlet modules.
98+
#>
99+
function Uninstall-AzureRM
100+
{
101+
param(
102+
[Parameter(Position=0, Mandatory = $false)]
103+
[string]
104+
$Repository)
105+
106+
Write-Output "Uninstalling AzureRM modules."
107+
108+
$installedModules = Get-InstalledModule
109+
110+
$AzureRMModules.Keys | ForEach {
111+
$moduleName = $_
112+
if (($installedModules | where {$_.Name -eq $moduleName}) -ne $null) {
113+
Uninstall-Module -Name $_ -ErrorAction Stop
114+
Write-Output "$moduleName uninstalled..."
115+
}
116+
}
117+
118+
if (($installedModules | where {"AzureRM.Profile" -eq $moduleName}) -ne $null) {
119+
Uninstall-Module -Name "AzureRM.Profile" -ErrorAction Stop
120+
Write-Output "AzureRM.Profile uninstalled..."
121+
}
122+
}
123+
74124
New-Alias -Name Install-AzureRM -Value Update-AzureRM
75125
Export-ModuleMember -function * -Alias *

0 commit comments

Comments
 (0)