private static object PrintDefaultValue(DefaultValueArgument argument) { if (argument.ValueType == typeof(string)) { return($"Default: '{argument.DefaultValue}'"); } return($"Default: {argument.DefaultValue}"); }
private IEnumerable <IValueProvider> GetDefaultValueProvidersInPrecedence(DefaultValueArgument argument) { return(new List <IValueProvider> { new ConstValueProvider(argument.DefaultValue), GetReadConfigValueProvider(argument), GetEnvironmentValueProvider(argument) }); }
private IValueProvider GetEnvironmentValueProvider(DefaultValueArgument argument) { if (argument.EnvironmentVariable == null) { return(new EmptyValueProvider()); } return(argument.IsEnvironmentVariableLazy ? (IValueProvider) new ValueProviderProxy(() => ReadEnvironmentVariable(argument)) : new ConstValueProvider(ReadEnvironmentVariable(argument))); }
public object ReadConfigGenericValue(DefaultValueArgument argument) { if (_genericConfig == null) { return(null); } if (!_genericConfig.Has(argument.ConfigPath)) { return(null); } return(_genericConfig.GetType() .GetMethod("Get", BindingFlags.Public | BindingFlags.Instance) ?.MakeGenericMethod(argument.ValueType) .Invoke(_genericConfig, new object[] { argument.ConfigPath })); }
private static string PrintDescription(DefaultValueArgument argument) { var description = ""; var separator = "\t"; if (!string.IsNullOrEmpty(argument.Description)) { description += separator + argument.Description; separator = " "; } if ((!argument.RequireValue || argument.DefaultValue == null) && string.IsNullOrEmpty(argument.EnvironmentVariable) && string.IsNullOrEmpty(argument.ConfigPath)) { return(description); } description += separator + "("; separator = ""; if (argument.RequireValue && argument.DefaultValue != null) { description += separator + PrintDefaultValue(argument); separator = ", "; } if (!string.IsNullOrEmpty(argument.EnvironmentVariable)) { description += separator + PrintEnvironmentVariable(argument); separator = ", "; } if (!string.IsNullOrEmpty(argument.ConfigPath)) { description += separator + PrintConfigPath(argument); } description += ")"; return(description); }
private IValueProvider GetReadConfigValueProvider(DefaultValueArgument argument) { if (argument.ConfigPath == null) { return(new EmptyValueProvider()); } if (_cliConfig.GenericConfig != null) { return(argument.IsConfigPathLazy ? (IValueProvider) new ValueProviderProxy(() => _configReader.ReadConfigGenericValue(argument)) : new ConstValueProvider(_configReader.ReadConfigGenericValue(argument))); } if (_cliConfig.Config != null) { return(argument.IsConfigPathLazy ? (IValueProvider) new ValueProviderProxy(() => _configReader.ReadConfigValue(argument)) : new ConstValueProvider(_configReader.ReadConfigValue(argument))); } return(new EmptyValueProvider()); }
private object ReadEnvironmentVariable(DefaultValueArgument argument) { return(_argumentValueReader.Read(argument, _cliConfig.Environment.Get(argument.EnvironmentVariable))); }
private static object PrintConfigPath(DefaultValueArgument argument) { return($"Config path: '{argument.ConfigPath}'"); }
private static object PrintEnvironmentVariable(DefaultValueArgument argument) { return($"Environment variable: '{argument.EnvironmentVariable}'"); }
public object ReadConfigValue(DefaultValueArgument argument) { return(_argumentValueReader.Read(argument, _config?.Get(argument.ConfigPath))); }