private async Task RunVerb(string[] args) { if (args.Length == 0) { Messages.Usage(verbRunners); return; } var verb = args[0].ToUpper(); IVerbRunner runner = null; foreach (var vr in verbRunners) { if (vr.Key.ToUpper().Equals(verb)) { runner = vr.Value; } } if (runner == null) { Messages.Usage(verbRunners); return; } if (runner.ParseArgs(args)) { await runner.Run(); } return; }
private int RunInternal(string[] args) { _log.Trace("Application starting."); // Parses command line without sanity checks. CommandLineParseResult parseResult = _parser.Parse(args); if (!parseResult.IsCorrect || !parseResult.Verb.HasValue) { _log.Error("Command line arguments incorrect."); return(1); } IVerbRunner verbRunner = CreateVerbRunner(parseResult.Verb.Value, parseResult.VerbOptions); verbRunner.Run(); return(0); }