コード例 #1
0
ファイル: VerbParsing.cs プロジェクト: tuongntk/NCmdArgs
        public void Parse_MyVerb_ParsersValid()
        {
            var args = new[] { "myverb", "--hello", "test" };
            var opt  = new VerbOptions();

            var p = new CommandLineParser();

            p.Parse(opt, args);


            Assert.Equal("test", opt.MyVerb.Hello);
        }
コード例 #2
0
ファイル: VerbParsing.cs プロジェクト: tuongntk/NCmdArgs
        public void Parse_MyVerb_LastVerbIsValid()
        {
            var args = new[] { "myverb", "--hello", "test" };
            var opt  = new VerbOptions();

            var p = new CommandLineParser();

            p.Parse(opt, args);

            Assert.Same(opt.MyVerb, p.LastVerb);
            Assert.Equal("myverb", p.VerbPath);
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: yamiacat/plexus-interop
        public async Task <int> RunAsync(string[] args)
        {
#if NET45
            var    invokedVerb         = string.Empty;
            object invokedVerbInstance = null;

            var options = new VerbOptions();
            if (!Parser.Default.ParseArguments(args, options,
                                               (verb, subOptions) =>
            {
                invokedVerb = verb;
                invokedVerbInstance = subOptions;
            }))
            {
                Console.WriteLine("There is no mandatory cmd argument. Exit immediately");
                return(Parser.DefaultExitCodeFail);
            }

            switch (invokedVerb)
            {
            case "start":
                return(await StartBrokerAsync((StartCliOptions)invokedVerbInstance).ConfigureAwait(false));

            case "broker":
                return(await StartBrokerAsync((BrokerCliOptions)invokedVerbInstance).ConfigureAwait(false));

            case "launch":
                return(await LaunchAppAsync((LaunchCliOptions)invokedVerbInstance).ConfigureAwait(false));

            case "stop":
                return(await StopBrokerAsync().ConfigureAwait(false));

            case "studio":
                return(await StartStudioAsync().ConfigureAwait(false));

            default:
                Console.WriteLine("There is no mandatory cmd argument. Exit immediately");
                return(Parser.DefaultExitCodeFail);
            }
#else
            return(await Parser.Default
                   .ParseArguments <BrokerCliOptions, StartCliOptions, LaunchCliOptions, StopCliOptions, StudioCliOptions>(args)
                   .MapResult(
                       (BrokerCliOptions opts) => StartBrokerAsync(opts),
                       (StartCliOptions opts) => StartBrokerAsync(opts),
                       (LaunchCliOptions opts) => LaunchAppAsync(opts),
                       (StopCliOptions opts) => StopBrokerAsync(),
                       (StudioCliOptions opts) => StartStudioAsync(),
                       errs => Task.FromResult(1)));
#endif
        }
コード例 #4
0
ファイル: VerbParsing.cs プロジェクト: tuongntk/NCmdArgs
        public void Parse_MyVerb_PropertVerCallbackIsCalled()
        {
            var args = new[] { "myverb", "--hello", "test" };
            var opt  = new VerbOptions();

            var called = false;

            var p = new CommandLineParser();

            p.Configuration.WhenVerb <VerbCommand>(command => called = true);

            p.Parse(opt, args);

            Assert.True(called);
        }