in src/Amazon.Common.DotNetCli.Tools/Commands/BaseCommand.cs [544:584]
public bool? GetBoolValueOrDefault(bool? propertyValue, CommandOption option, bool required)
{
if (propertyValue.HasValue)
{
return propertyValue.Value;
}
else if (DefaultConfig[option.Switch] is bool)
{
var configDefault = (bool)DefaultConfig[option.Switch];
return configDefault;
}
else if (required && !this.DisableInteractive)
{
var userValue = PromptForValue(option);
if (string.IsNullOrWhiteSpace(userValue))
return null;
bool i;
if (bool.TryParse(userValue, out i))
{
throw new ToolsException($"{userValue} cannot be parsed into a boolean for {option.Name}", ToolsException.CommonErrorCode.CommandLineParseError);
}
return i;
}
else if (_cachedRequestedValues.ContainsKey(option))
{
var cachedValue = _cachedRequestedValues[option];
bool i;
if (bool.TryParse(cachedValue, out i))
{
return i;
}
}
if (required)
{
throw new ToolsException($"Missing required parameter: {option.Switch}", ToolsException.CommonErrorCode.MissingRequiredParameter);
}
return null;
}