public void ShowUsage() { Cout.Write("Usage: " + path); foreach (var opt in options) { Cout.Write(" [-" + opt.Key); opt.Value.ShowUsage(); Cout.Write("]"); } Cout.WriteLine(); }
public bool Process(string[] args) { Queue <string> arguments = new Queue <string>(args.Length); foreach (var arg in args) { arguments.Enqueue(arg); } while (arguments.Count > 0) { string arg = arguments.Dequeue(); if ((arg.Length != 2) || (arg[0] != '-')) { Cout.WriteLine($"Unknown command line parameter: \"{arg}\""); continue; } char key = arg[1]; if (!options.ContainsKey(key)) { ShowHelp(); return(false); } Option opt = options[key]; List <string> parameters = new List <string>(); while (arguments.Count > 0 && (arguments.Peek()[0] != '-')) { parameters.Add(arguments.Dequeue()); } if (!opt.Process(parameters)) { ShowHelp(); return(false); } } return(true); }
public void ShowHelp() { ShowUsage(); Cout.WriteLine(); foreach (var opt in options) { Cout.Write("\t-" + opt.Key); opt.Value.ShowHelp(); Cout.WriteLine(); } if (!string.IsNullOrWhiteSpace(comment)) { Cout.WriteLine(); Cout.WriteLine(comment); } }