Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        private IVerbRunner CreateVerbRunner(Verb verb, IVerbRunnerOptions options)
        {
            IVerbRunnerFactory factory = _factorySelector[verb];
            IVerbRunner        runner  = factory.Create(options);

            return(runner);
        }
Exemplo n.º 3
0
        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);
        }