private static object PrintDefaultValue(DefaultValueArgument argument)
            {
                if (argument.ValueType == typeof(string))
                {
                    return($"Default: '{argument.DefaultValue}'");
                }

                return($"Default: {argument.DefaultValue}");
            }
Exemple #2
0
 private IEnumerable <IValueProvider> GetDefaultValueProvidersInPrecedence(DefaultValueArgument argument)
 {
     return(new List <IValueProvider>
     {
         new ConstValueProvider(argument.DefaultValue),
         GetReadConfigValueProvider(argument),
         GetEnvironmentValueProvider(argument)
     });
 }
Exemple #3
0
        private IValueProvider GetEnvironmentValueProvider(DefaultValueArgument argument)
        {
            if (argument.EnvironmentVariable == null)
            {
                return(new EmptyValueProvider());
            }

            return(argument.IsEnvironmentVariableLazy
                ? (IValueProvider) new ValueProviderProxy(() => ReadEnvironmentVariable(argument))
                : new ConstValueProvider(ReadEnvironmentVariable(argument)));
        }
Exemple #4
0
        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);
            }
Exemple #6
0
        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());
        }
Exemple #7
0
 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}'");
 }
Exemple #10
0
 public object ReadConfigValue(DefaultValueArgument argument)
 {
     return(_argumentValueReader.Read(argument, _config?.Get(argument.ConfigPath)));
 }