icinga-powershell-framework/lib/core/icingaagent/getters/Get-IcingaAgentInstallerAnswerInput.psm1

54 lines
1.3 KiB
PowerShell
Raw Normal View History

function Get-IcingaAgentInstallerAnswerInput()
{
param(
$Prompt,
[ValidateSet("y", "n", "v")]
$Default,
$DefaultInput = '',
[switch]$Secure
);
$DefaultAnswer = '';
if ($Default -eq 'y') {
$DefaultAnswer = ' (Y/n)';
} elseif ($Default -eq 'n') {
$DefaultAnswer = ' (y/N)';
} elseif ($Default -eq 'v') {
if ([string]::IsNullOrEmpty($DefaultInput) -eq $FALSE) {
$DefaultAnswer = [string]::Format(' (Defaults: "{0}")', $DefaultInput);
}
}
if (-Not $Secure) {
$answer = Read-Host -Prompt ([string]::Format('{0}{1}', $Prompt, $DefaultAnswer));
} else {
$answer = Read-Host -Prompt ([string]::Format('{0}{1}', $Prompt, $DefaultAnswer)) -AsSecureString;
}
if ($Default -ne 'v') {
$answer = $answer.ToLower();
$returnValue = 0;
if ([string]::IsNullOrEmpty($answer) -Or $answer -eq $Default) {
$returnValue = 1;
} else {
$returnValue = 0;
}
return @{
'result' = $returnValue;
'answer' = '';
}
}
if ([string]::IsNullOrEmpty($answer)) {
$answer = $DefaultInput;
}
return @{
'result' = 2;
'answer' = $answer;
}
}