| File: Commands\Package\PackageSearchCommandDefinition.cs | Web Access |
| Project: src\sdk\src\Cli\Microsoft.DotNet.Cli.Definitions\Microsoft.DotNet.Cli.Definitions.csproj (Microsoft.DotNet.Cli.Definitions) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.CommandLine; using Microsoft.DotNet.Cli.CommandLine; namespace Microsoft.DotNet.Cli.Commands.Package.Search; internal sealed class PackageSearchCommandDefinition : Command { public new const string Name = "search"; public readonly Argument<string> SearchTermArgument = new("SearchTerm") { HelpName = CommandDefinitionStrings.PackageSearchSearchTermArgumentName, Description = CommandDefinitionStrings.PackageSearchSearchTermDescription, Arity = ArgumentArity.ZeroOrOne }; public readonly Option<IEnumerable<string>> Sources = new Option<IEnumerable<string>>("--source") { Description = CommandDefinitionStrings.SourceDescription, HelpName = CommandDefinitionStrings.SourceArgumentName }.ForwardAsManyArgumentsEachPrefixedByOption("--source") .AllowSingleArgPerToken(); public readonly Option<string> Take = new Option<string>("--take") { Description = CommandDefinitionStrings.PackageSearchTakeDescription, HelpName = CommandDefinitionStrings.PackageSearchTakeArgumentName }.ForwardAsSingle(o => $"--take:{o}"); public readonly Option<string> Skip = new Option<string>("--skip") { Description = CommandDefinitionStrings.PackageSearchSkipDescription, HelpName = CommandDefinitionStrings.PackageSearchSkipArgumentName }.ForwardAsSingle(o => $"--skip:{o}"); public readonly Option<bool> ExactMatch = new Option<bool>("--exact-match") { Description = CommandDefinitionStrings.ExactMatchDescription, Arity = ArgumentArity.Zero }.ForwardAs("--exact-match"); public readonly Option<bool> Interactive = CommonOptions.CreateInteractiveOption().ForwardIfEnabled("--interactive"); public readonly Option<bool> Prerelease = new Option<bool>("--prerelease") { Description = CommandDefinitionStrings.PackageSearchPrereleaseDescription, Arity = ArgumentArity.Zero }.ForwardAs("--prerelease"); public readonly Option<string> ConfigFile = new Option<string>("--configfile") { Description = CommandDefinitionStrings.ConfigFileDescription, HelpName = CommandDefinitionStrings.ConfigFileArgumentName }.ForwardAsSingle(o => $"--configfile:{o}"); public readonly Option<string> Format = new Option<string>("--format") { Description = CommandDefinitionStrings.FormatDescription, HelpName = CommandDefinitionStrings.FormatArgumentName }.ForwardAsSingle(o => $"--format:{o}"); public readonly Option<string> Verbosity = new Option<string>("--verbosity") { Description = CommandDefinitionStrings.VerbosityDescription, HelpName = CommandDefinitionStrings.VerbosityArgumentName }.ForwardAsSingle(o => $"--verbosity:{o}"); public PackageSearchCommandDefinition() : base(Name, CommandDefinitionStrings.PackageSearchCommandDescription) { Arguments.Add(SearchTermArgument); Options.Add(Sources); Options.Add(Take); Options.Add(Skip); Options.Add(ExactMatch); Options.Add(Interactive); Options.Add(Prerelease); Options.Add(ConfigFile); Options.Add(Format); Options.Add(Verbosity); } }