core/public/Resolve-JaxEnvSelection.ps1
|
function Resolve-JaxEnvSelection { [CmdletBinding()] param ( [Parameter(Mandatory = $true)] [object[]] $Environments, [string] $Env, [string] $Client ) $selected = $null $flowOverride = $null $errorMessage = $null try { $selected = Resolve-JaxSelectedEnvironment -Environments $Environments -Env $Env -Client $Client } catch { $errorMessage = $_.Exception.Message } if ($null -eq $selected -and -not [string]::IsNullOrWhiteSpace($Env) -and $Env.Contains('/')) { $parts = $Env -split '/' if ($parts.Count -gt 1) { $flowOverride = $parts[-1] $envCandidate = ($parts[0..($parts.Count - 2)] -join '/') try { $selected = Resolve-JaxSelectedEnvironment -Environments $Environments -Env $envCandidate -Client $Client } catch { if ([string]::IsNullOrWhiteSpace($errorMessage)) { $errorMessage = $_.Exception.Message } } } } if ($null -eq $selected) { if ([string]::IsNullOrWhiteSpace($errorMessage)) { $errorMessage = "Environment '$Env' was not found." } throw $errorMessage } return [pscustomobject]@{ Environment = $selected FlowOverride = $flowOverride } } |