dotnet/command-line-api

Mutually exclusive options

Open

#381 ouverte le 20 janv. 2019

Voir sur GitHub
 (16 commentaires) (14 réactions) (0 assignés)C# (421 forks)auto 404
Area-Parser and Binderenhancementhelp wanted

Métriques du dépôt

Stars
 (3 665 stars)
Métriques de merge PR
 (Merge moyen 1h 58m) (1 PR mergée en 30 j)

Description

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

Guide contributeur