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