//[GetHelp] public string GetUsage(CommandMetadata metadata, ParsingResult parsingResult) { return new StringBuilder(metadata.Name).AppendLine().AppendLine(metadata.Description) .AppendLine(string.Join(Environment.NewLine, parsingResult.Errors.Select( err => (err.OptionMetadata.IsNamedOption ? ((CommandNamedOptionMetadata)err.OptionMetadata).ShortName + ((CommandNamedOptionMetadata)err.OptionMetadata).LongName : string.Empty) + " " + err.OptionMetadata.ToString() + " - " + err.ParsingErrorBase.ToString()))).ToString(); }
private static void ShowCommandHelp(object command, CommandMetadata metadata, ParsingResult parsingResult) { // ReSharper disable PossibleNullReferenceException if (metadata.HelpMethod == null) HelpBuilder.PrintCommandHelp(Output, metadata, AssemblyInfo, parsingResult); else { var parameters = new List<object>(); foreach (var type in metadata.HelpMethod.GetParameters().Select(param => param.ParameterType)) if (type == typeof(CommandMetadata)) parameters.Add(metadata); else parameters.Add(parsingResult); Output.WriteLine(metadata.HelpMethod.Invoke(command, parameters.ToArray())); } // ReSharper restore PossibleNullReferenceException }