forked from Azure/azure-powershell
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathUpdatePlatyPS.ps1
98 lines (86 loc) · 3.08 KB
/
UpdatePlatyPS.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
# ----------------------------------------------------------------------------------
#
# Copyright Microsoft Corporation
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ----------------------------------------------------------------------------------
#Requires -Modules platyPS
<#
.SYNOPSIS Creates or updates markdown files for Azure Stack admin modules.
#>
param(
[ValidateNotNull()]
[String[]]$Modules = @(
"Azs.AzureBridge.Admin",
"Azs.Backup.Admin",
"Azs.Commerce.Admin",
"Azs.Compute.Admin",
"Azs.Fabric.Admin",
"Azs.Gallery.Admin",
"Azs.InfrastructureInsights.Admin",
"Azs.KeyVault.Admin",
"Azs.Network.Admin",
"Azs.Storage.Admin",
"Azs.Subscriptions.Admin",
"Azs.Subscriptions",
"Azs.Update.Admin"
),
[ValidateNotNull()]
[String[]]$Skipped = @()
)
Import-Module AzureRM.Profile -Force
$Scheduled = $Modules | Where-Object { !($_ -in $Skipped) }
# Simple test incase someone tries to get clever.
foreach ($module in $Scheduled) {
if ( !($module -in $Modules) ) {
throw "The module '$module' is not in All."
}
}
<#
.SYNOPSIS Creates or updates markdown files
#>
function Update-Help {
[CmdletBinding()]
param(
[string]$BuildConfig
)
# Root folder where modules are located
$rootFolder = "$($PSSCriptRoot)\..\src\StackAdmin\"
# Number of failures we have seen
[int]$Failures = 0
$adminModules = Get-ChildItem -Path $rootFolder -Directory -Filter Azs.*
foreach ($module in $adminModules) {
$moduleDir = $module.FullName + "\Module"
$module = $module.FullName | Split-Path -Leaf
if ( $module -in $Scheduled ) {
Push-Location $moduleDir | Out-Null
try {
Import-Module ".\$module" -Force | Out-Null
if (Test-Path "..\Help") {
Write-Host "Removing old help files"
Remove-Item -Path "..\Help" -Force -Recurse
}
Write-Host "creating $module..."
New-MarkdownHelp -Module $module -AlphabeticParamsOrder -OutputFolder ..\Help -WithModulePage
Update-MarkdownHelpModule -Path ..\Help -RefreshModulePage -AlphabeticParamsOrder
Write-Host "done..."
} catch {
$Failures += 1
Write-Error "$($_.Exception)"
break
} finally {
Pop-Location | Out-Null
}
}
}
return $Failures
}
write-Host "Updating markdown modules..."
exit (Update-Help -BuildConfig $BuildConfig)