2018-01-25 02:22:14 +01:00
|
|
|
#!/usr/bin/env pwsh
|
|
|
|
#Requires -Version 6
|
2019-03-20 07:26:12 +01:00
|
|
|
#Requires -Modules PSScriptAnalyzer, PSSA-PSCustomUseLiteralPath
|
2018-01-25 02:22:14 +01:00
|
|
|
|
|
|
|
Set-StrictMode -Version 2.0
|
|
|
|
$ErrorActionPreference = "Stop"
|
2018-12-19 18:53:15 +01:00
|
|
|
$WarningPreference = "Stop"
|
2018-01-25 02:22:14 +01:00
|
|
|
|
2019-03-20 07:26:12 +01:00
|
|
|
$LiteralPathRule = Import-Module -Name PSSA-PSCustomUseLiteralPath -PassThru
|
|
|
|
$LiteralPathRulePath = Join-Path -Path $LiteralPathRule.ModuleBase -ChildPath $LiteralPathRule.RootModule
|
|
|
|
|
|
|
|
$PSSAParams = @{
|
|
|
|
CustomRulePath = @($LiteralPathRulePath)
|
|
|
|
IncludeDefaultRules = $true
|
|
|
|
Setting = (Join-Path -Path $PSScriptRoot -ChildPath "settings.psd1")
|
|
|
|
}
|
|
|
|
|
2018-01-25 02:22:14 +01:00
|
|
|
$Results = @()
|
|
|
|
|
|
|
|
ForEach ($Path in $Args) {
|
2018-12-19 18:53:15 +01:00
|
|
|
$Retries = 3
|
|
|
|
|
|
|
|
Do {
|
|
|
|
Try {
|
2019-03-20 07:26:12 +01:00
|
|
|
$Results += Invoke-ScriptAnalyzer -Path $Path @PSSAParams 3> $null
|
2018-12-19 18:53:15 +01:00
|
|
|
$Retries = 0
|
|
|
|
}
|
|
|
|
Catch {
|
|
|
|
If (--$Retries -le 0) {
|
|
|
|
Throw
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Until ($Retries -le 0)
|
2018-01-25 02:22:14 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
ConvertTo-Json -InputObject $Results
|