| File: Commands\Package\PackageRemoveCommandDefinition.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.Remove; internal sealed class PackageRemoveCommandDefinition : PackageRemoveCommandDefinitionBase { public new const string Name = "remove"; public PackageRemoveCommandDefinition() : base(Name) { Options.Add(ProjectOption); Options.Add(FileOption); } public override Argument<string>? GetProjectOrFileArgument() => null; } internal abstract class PackageRemoveCommandDefinitionBase : Command { public readonly Argument<string[]> CmdPackageArgument = new(CommandDefinitionStrings.CmdPackage) { Description = CommandDefinitionStrings.PackageRemoveAppHelpText, Arity = ArgumentArity.OneOrMore, }; public readonly Option<bool> InteractiveOption = CommonOptions.CreateInteractiveOption().ForwardIfEnabled("--interactive"); public readonly Option<string?> ProjectOption = PackageCommandDefinition.CreateProjectOption(); public readonly Option<string?> FileOption = PackageCommandDefinition.CreateFileOption(); public PackageRemoveCommandDefinitionBase(string name) : base(name, CommandDefinitionStrings.PackageRemoveAppFullName) { Arguments.Add(CmdPackageArgument); Options.Add(InteractiveOption); } public abstract Argument<string>? GetProjectOrFileArgument(); }