core/public/Convert-JaxCliUnknownToHashtable.ps1
|
function Convert-JaxCliUnknownToHashtable { [CmdletBinding()] param ( [string[]] $Unknown = @() ) $result = @{} if ($null -eq $Unknown -or $Unknown.Count -eq 0) { return $result } for ($i = 0; $i -lt $Unknown.Count; $i++) { $token = [string]$Unknown[$i] if ([string]::IsNullOrWhiteSpace($token)) { continue } if (-not $token.StartsWith('-')) { continue } $trimmed = $token.TrimStart('-') if ([string]::IsNullOrWhiteSpace($trimmed)) { continue } $name = $trimmed $value = $true if ($trimmed.Contains('=')) { $parts = $trimmed.Split('=', 2) $name = [string]$parts[0] $value = $parts[1] } elseif (($i + 1) -lt $Unknown.Count) { $next = [string]$Unknown[$i + 1] if (-not [string]::IsNullOrWhiteSpace($next) -and -not $next.StartsWith('-')) { $value = $next $i++ } } if ([string]::IsNullOrWhiteSpace($name)) { continue } $result[$name] = $value } return $result } |