dotnet/command-line-api

Mutually exclusive options

Open

#381 aperta il 20 gen 2019

Vedi su GitHub
 (16 commenti) (14 reazioni) (0 assegnatari)C# (421 fork)auto 404
Area-Parser and Binderenhancementhelp wanted

Metriche repository

Star
 (3665 star)
Metriche merge PR
 (Merge medio 1h 58m) (1 PR mergiata in 30 g)

Descrizione

It would be great to be able to handle mutually exclusive options.

Example

For example, if I had a command that either took an --all option or a --tenant <tenant-id> option, but never both.

public static Command Rebuild(IContainer container)
{
    var rebuild = new Command("rebuild", "Rebuilds a search index for one (--tenant <tenant-id>) or all (--all) tenants.")
    {
        Handler = CommandHandler.Create<bool, Guid>((all, tenant) =>
            container.Resolve<SearchRebuildTask>().ExecuteAsync(all, tenant))
    };

    rebuild.AddOption(new Option(new[] {"--all", "-a"},
        "Indicates if all tenants should be rebuilt.",
        new Argument<bool>(false) {Arity = ArgumentArity.ZeroOrOne}));

    rebuild.AddOption(new Option(new[] {"--tenant", "-t"},
        "Specifies the specific tenant that should be rebuilt.",
        new Argument<Guid> {Arity = ArgumentArity.ZeroOrOne}));

    return rebuild;
}

Guida contributor