core/public/Get-JaxFlowConfig.ps1
|
function Get-JaxFlowConfig { [CmdletBinding(DefaultParameterSetName = 'Single')] param ( [Parameter(Mandatory = $true, ParameterSetName = 'Single')] [string] $Path, [Parameter(Mandatory = $true, ParameterSetName = 'Multiple')] [string[]] $Paths, [hashtable] $VariablesOverride, [bool] $ExpandVariables = $true, [switch] $DontThrowInVariablesExpansion ) $pathsToRead = @() if ($PSCmdlet.ParameterSetName -eq 'Multiple') { $pathsToRead = @($Paths) } else { $pathsToRead = @($Path) } $config = @{} foreach ($path in $pathsToRead) { if ([string]::IsNullOrWhiteSpace($path)) { continue } $part = Read-JaxYaml -Path $path if ($null -eq $part) { continue } $config = Merge-JaxHashtable -Base $config -Overlay $part } if ($ExpandVariables) { $config = Expand-JaxPlaceholders -Config $config -Override $VariablesOverride -DontThrow:$DontThrowInVariablesExpansion } return $config } |