lib/core/installer/tools/Write-IcingaManagementConsoleCommand.psm1
function Write-IcingaManagementConsoleCommand() { param ( $Entry = $null, $Values = @() ); if ($null -eq $Entry -Or $Entry.ContainsKey('Action') -eq $FALSE) { return ''; } [string]$PrintArguments = ''; [string]$PrintCommand = ''; [hashtable]$DefinedArgs = @{ }; if ($entry.Action.ContainsKey('Arguments') -And $entry.Action.Arguments.ContainsKey('-Command')) { $PrintCommand = $Entry.Action.Arguments['-Command']; if ($Entry.Action.Arguments.ContainsKey('-CmdArguments')) { $DefinedArgs = $Entry.Action.Arguments['-CmdArguments']; } } elseif ($entry.Action.ContainsKey('Command')) { $PrintCommand = $entry.Action.Command; if ($Entry.Action.ContainsKey('Arguments')) { $DefinedArgs = $Entry.Action.Arguments; } } foreach ($cmdArg in $DefinedArgs.Keys) { $PrintValue = $DefinedArgs[$cmdArg]; [string]$StringArg = ([string]$cmdArg).Replace('-', ''); if ($PrintValue.GetType().Name -eq 'Boolean') { if ((Get-Command $PrintCommand).Parameters.$StringArg.ParameterType.Name -eq 'SwitchParameter') { $PrintValue = ''; } else { if ($PrintValue) { $PrintValue = '$TRUE'; } else { $PrintValue = '$FALSE'; } } } elseif ($PrintValue.GetType().Name -eq 'String') { $PrintValue = (ConvertFrom-IcingaArrayToString -Array $PrintValue -AddQuotes -UseSingleQuotes); } if ([string]::IsNullOrEmpty($PrintValue)) { $PrintArguments += ([string]::Format('{0} ', $cmdArg)); } else { $PrintArguments += ([string]::Format('{0} {1} ', $cmdArg, $PrintValue)); } } $PrintArguments = $PrintArguments.Replace('$DefaultValues$', ((ConvertFrom-IcingaArrayToString -Array $Values -AddQuotes))); while ($PrintArguments[-1] -eq ' ') { $PrintArguments = $PrintArguments.SubString(0, $PrintArguments.Length - 1); } if ([string]::IsNullOrEmpty($PrintArguments) -eq $FALSE) { $PrintArguments = [string]::Format(' {0}', $PrintArguments); } Write-IcingaConsolePlain ([string]::Format('PS> {0}{1};', $PrintCommand, $PrintArguments)) -ForeColor Magenta; Write-IcingaConsolePlain ''; } |