You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible/test/lib/ansible_test/_util/controller/sanity/pslint/pslint.ps1

38 lines
1.1 KiB
PowerShell

#Requires -Version 6
#Requires -Modules PSScriptAnalyzer, PSSA-PSCustomUseLiteralPath
$ErrorActionPreference = "Stop"
$WarningPreference = "Stop"
$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")
}
$Results = @(
ForEach ($Path in $Args) {
$Retries = 3
Do {
Try {
Invoke-ScriptAnalyzer -Path $Path @PSSAParams 3> $null
$Retries = 0
}
Catch {
If (--$Retries -le 0) {
Throw
}
}
}
Until ($Retries -le 0)
}
)
# Since pwsh 7.1 results that exceed depth will produce a warning which fails the process.
# Ignore warnings only for this step.
ConvertTo-Json -InputObject $Results -Depth 1 -WarningAction SilentlyContinue