dotnet/command-line-api

Mutually exclusive options

Offen

#381 geöffnet am 20.01.2019

 (16 Kommentare) (14 Reaktionen) (0 zugewiesene Personen)C# (421 Forks)auto 404
Area-Parser and Binderenhancementhelp wanted

Repository-Metriken

Stars
 (3.665 Sterne)
PR-Merge-Metriken
 (Durchschn. Merge 38T 3h) (3 gemergte PRs in 30 T)

Beschreibung

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;
}

Contributor Guide