Esempio n. 1
0
        private IVerbRunner CreateVerbRunner(Verb verb, IVerbRunnerOptions options)
        {
            IVerbRunnerFactory factory = _factorySelector[verb];
            IVerbRunner        runner  = factory.Create(options);

            return(runner);
        }
Esempio n. 2
0
        public CommandLineParseResult Parse(string[] args)
        {
            ParserResult <object> result =
                Parser.Default.ParseArguments <ConfigureOptions, DrawOptions, FetchOptions>(args);

            if (result is NotParsed <object> )
            {
                IEnumerable <Error> errors = (result as NotParsed <object>).Errors;
                foreach (Error error in errors)
                {
                    _log.Error("Invalid command line arguments ({0}).", error.Tag);
                }

                return(CommandLineParseResult.Failed);
            }

            var          parsed  = (Parsed <object>)result;
            IVerbOptions options = parsed.Value as IVerbOptions;

            if (options == null)
            {
                string message = "Unexpected problem parsing command line.";
                _log.Fatal(message);
                throw new LoggedAsFatalException(message);
            }

            Verb v = GetVerbFrom(options);
            IVerbOptionsConverter converter     = _factories[v];
            IVerbRunnerOptions    runnerOptions = converter.ConvertOptions(options);

            return(CommandLineParseResult.Correct(v, runnerOptions));
        }
Esempio n. 3
0
        public IVerbRunner Create(IVerbRunnerOptions verbOptions)
        {
            TOptions optionsTyped = verbOptions as TOptions;

            if (optionsTyped == null)
            {
                Log.Warn(
                    "No correct options of type {0} provided when generating a runner.",
                    typeof(TOptions).Name);
            }

            return(CreateInternal(optionsTyped));
        }
Esempio n. 4
0
 public static CommandLineParseResult Correct(Verb verb, IVerbRunnerOptions options)
 {
     return(new CommandLineParseResult {
         IsCorrect = true, Verb = verb, VerbOptions = options
     });
 }