in src/Amazon.Common.DotNetCli.Tools/Commands/BaseCommand.cs [452:486]
public Dictionary<string, string> GetKeyValuePairOrDefault(Dictionary<string, string> propertyValue, CommandOption option, bool required)
{
if (propertyValue != null)
{
return propertyValue;
}
else if (!string.IsNullOrEmpty(DefaultConfig[option.Switch] as string))
{
var configDefault = DefaultConfig[option.Switch] as string;
if (string.IsNullOrEmpty(configDefault))
return null;
return Utilities.ParseKeyValueOption(configDefault);
}
else if (required && !this.DisableInteractive)
{
var response = PromptForValue(option);
if (string.IsNullOrEmpty(response))
return null;
return Utilities.ParseKeyValueOption(response);
}
else if (_cachedRequestedValues.ContainsKey(option))
{
var cachedValue = _cachedRequestedValues[option];
return cachedValue == null ? null : Utilities.ParseKeyValueOption(cachedValue);
}
if (required)
{
throw new ToolsException($"Missing required parameter: {option.Switch}", ToolsException.CommonErrorCode.MissingRequiredParameter);
}
return null;
}