Exemple #1
0
 internal static void WriteOptionValueError(
     string value,
     OptionValue optionValue,
     OptionValueProvider?provider = null)
 {
     WriteOptionValueError(value, optionValue, OptionValueProviders.GetHelpText(provider, multiline: true));
 }
Exemple #2
0
        public static void WriteCommandHelp(Command command, bool includeValues = false, Filter?filter = null)
        {
            var writer = new ConsoleHelpWriter(new HelpWriterOptions(filter: filter));

            command = command.WithOptions(command.Options.Sort(CompareOptions));

            CommandHelp commandHelp = CommandHelp.Create(command, OptionValueProviders.Providers, filter: filter);

            writer.WriteCommand(commandHelp);

            if (includeValues)
            {
                writer.WriteValues(commandHelp.Values);
            }
            else
            {
                IEnumerable <string> metaValues = OptionValueProviders.GetProviders(commandHelp.Options.Select(f => f.Option), OptionValueProviders.Providers).Select(f => f.Name);

                if (metaValues.Any())
                {
                    WriteLine();
                    Write($"Run 'orang help {command.Name} -v d' to display list of allowed values for ");
                    Write(TextHelpers.Join(", ", " and ", metaValues));
                    WriteLine(".");
                }
            }
        }
Exemple #3
0
        public static bool TryParseAsEnum <TEnum>(
            string value,
            string optionName,
            out TEnum result,
            TEnum?defaultValue           = null,
            OptionValueProvider?provider = null) where TEnum : struct
        {
            if (!TryParseAsEnum(value, out result, defaultValue, provider))
            {
                string allowedValues = OptionValueProviders.GetHelpText(provider, multiline: true) ?? OptionValue.GetDefaultHelpText <TEnum>(multiline: true);

                WriteOptionError(value, optionName, allowedValues);
                return(false);
            }

            return(true);
        }