void PrintHelp(string executableName) { Console.WriteLine($"Usage: {executableName} <command> [<args>]"); Console.WriteLine(); Console.WriteLine("Available commands are:"); var printedGroups = new HashSet <string>(StringComparer.OrdinalIgnoreCase); foreach (var avail in _availableCommands.OrderBy(c => c.Metadata.Name)) { if (avail.Metadata.SubCommand != null) { if (!printedGroups.Contains(avail.Metadata.Name)) { Printing.Define($" {avail.Metadata.Name}", "<sub-command>", 13, Console.Out); printedGroups.Add(avail.Metadata.Name); } } else { Printing.Define($" {avail.Metadata.Name}", avail.Metadata.HelpText, 13, Console.Out); } } Console.WriteLine(); Console.WriteLine($"Type `{executableName} help <command>` for detailed help"); }
void PrintHelp(string executableName, string topLevelCommand) { Console.WriteLine($"Usage: {executableName} {topLevelCommand} <sub-command> [<args>]"); Console.WriteLine(); Console.WriteLine("Available sub-commands are:"); foreach (var avail in _availableCommands.Where(c => c.Metadata.Name == topLevelCommand).OrderBy(c => c.Metadata.SubCommand)) { Printing.Define($" {avail.Metadata.SubCommand}", avail.Metadata.HelpText, 13, Console.Out); } Console.WriteLine(); Console.WriteLine($"Type `{executableName} help {topLevelCommand} <sub-command>` for detailed help"); }
void PrintHelp(string executableName) { Console.WriteLine($"Usage: {executableName} <command> [<args>]"); Console.WriteLine(); Console.WriteLine("Available commands are:"); foreach (var availableCommand in _availableCommands) { Printing.Define( " " + availableCommand.Metadata.Name, availableCommand.Metadata.HelpText, 13, Console.Out); } Console.WriteLine(); Console.WriteLine($"Type `{executableName} help <command>` for detailed help"); }
protected override int Run(string[] unrecognised) { var ea = Assembly.GetEntryAssembly(); var name = ea.GetName().Name; if (unrecognised.Length > 0) { var target = unrecognised[0].ToLowerInvariant(); var cmd = _availableCommands.SingleOrDefault(c => c.Metadata.Name == target); if (cmd != null) { var argHelp = cmd.Value.Value.HasArgs ? " [<args>]" : ""; Console.WriteLine(name + " " + cmd.Metadata.Name + argHelp); Console.WriteLine(); Console.WriteLine(cmd.Metadata.HelpText); Console.WriteLine(); cmd.Value.Value.PrintUsage(); return(0); } base.Run(unrecognised); } Console.WriteLine($"Usage: {name} <command> [<args>]"); Console.WriteLine(); Console.WriteLine("Available commands are:"); foreach (var availableCommand in _availableCommands) { Printing.Define( " " + availableCommand.Metadata.Name, availableCommand.Metadata.HelpText, 13, Console.Out); } Console.WriteLine(); Console.WriteLine($"Type '{name} help <command>' for detailed help."); return(0); }