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 IVerbRunner CreateVerbRunner(Verb verb, IVerbRunnerOptions options) { IVerbRunnerFactory factory = _factorySelector[verb]; IVerbRunner runner = factory.Create(options); return(runner); }
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); }