示例#1
0
        /// <summary>
        /// Creates command line handling and appends handlers to the provided <see cref="RootCommand"/>
        /// </summary>
        /// <param name="root"></param>
        /// <param name="settings"></param>
        /// <returns></returns>
        public static Command CreateCommandHandling(this RootCommand root)
        {
            Command version = new Command("version")
                              .Configure(c => { c.AddAlias("--version"); })
                              .HandledBy <GetVersionCommandLineHandler>();

            Command db = new Command("db")
                         .Configure(c => { c.AddAlias("--db"); })
                         .AddSubCommand(new ValidatedCommand("init")
                                        .Configure(c =>
            {
                c.AddAlias("--init");
                c.AddAlias("-i");
                c.AddValidation(sp => { return(true, string.Empty); });
            })
                                        .HandledBy <DbInitCommandLineHandler>())
                         .AddSubCommand(new ValidatedCommand("migrate")
                                        .Configure(c =>
            {
                c.AddAlias("--migrate");
                c.AddAlias("-m");
                c.AddValidation(sp => { return(true, string.Empty); });
            })
                                        .HandledBy <MigrateToLatestVersionCommandHandler>());

            Command rootCommand = root
                                  .AddSubCommand(db)
                                  .AddSubCommand(version);

            return(rootCommand);
        }
示例#2
0
        /// <summary>
        /// Register commandline commands
        /// </summary>
        /// <returns></returns>
        private Command RegisterCommandLineCommands()
        {
            var root = new RootCommand();
            var run  = new Command("--run", "Start a load test")
                       .Configure(c =>
            {
                c.AddAlias("-r");

                var fileOption = new Option <FileInfo>("--file").ExistingOnly();
                fileOption.AddAlias("-f");
                c.AddOption(fileOption);

                var @out = new Option <string>("--out");
                @out.AddAlias("-o");
                c.AddOption(@out);

                var debugOption = new Option <bool>("--debug");
                debugOption.AddAlias("-d");
                c.AddOption(debugOption);
            })
                       .HandledBy <RunCommand>();

            var version = new Command("--version", "Show version information")
                          .Configure(c => { c.AddAlias("-v"); })
                          .HandledBy <VersionCommand>();

            var newProject = new Command("--new", "Creates a new test project")
                             .Configure(c =>
            {
                var nameOption = new Option <string>("--name");
                nameOption.AddAlias("-n");
                nameOption.IsRequired = true;
                c.AddOption(nameOption);
            })
                             .HandledBy <NewCommand>();

            return(root
                   .AddSubCommand(run)
                   .AddSubCommand(version)
                   .AddSubCommand(newProject)
                   );
        }