| File: Common\ImplicitRestoreOptions.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.Collections.ObjectModel; using System.CommandLine; using Microsoft.DotNet.Cli.CommandLine; namespace Microsoft.DotNet.Cli.Commands.Restore; internal sealed class ImplicitRestoreOptions { public readonly Option<IEnumerable<string>> SourceOption; public readonly Option<string> PackagesOption; public readonly Option<bool> CurrentRuntimeOption; public readonly Option<bool> DisableParallelOption; public readonly Option<string> ConfigFileOption; public readonly Option<bool> NoCacheOption; public readonly Option<bool> NoHttpCacheOption; public readonly Option<bool> IgnoreFailedSourcesOption; public readonly Option<bool> ForceOption; public readonly Option<ReadOnlyDictionary<string, string>?> PropertiesOption; public readonly Option<ReadOnlyDictionary<string, string>?> RestorePropertiesOption; public ImplicitRestoreOptions(bool showHelp, bool useShortOptions) { SourceOption = CreateSourceOption(showHelp, useShortOptions); PackagesOption = new Option<string>("--packages") { Description = showHelp ? CommandDefinitionStrings.CmdPackagesOptionDescription : string.Empty, HelpName = CommandDefinitionStrings.CmdPackagesOption, Hidden = !showHelp }.ForwardAsSingle(o => $"-property:RestorePackagesPath={CommandDirectoryContext.GetFullPath(o)}"); CurrentRuntimeOption = CommonOptions.CreateUseCurrentRuntimeOption(CommandDefinitionStrings.CmdCurrentRuntimeOptionDescription); DisableParallelOption = new Option<bool>("--disable-parallel") { Description = showHelp ? CommandDefinitionStrings.CmdDisableParallelOptionDescription : string.Empty, Hidden = !showHelp, Arity = ArgumentArity.Zero }.ForwardAs("-property:RestoreDisableParallel=true"); ConfigFileOption = new Option<string>("--configfile") { Description = showHelp ? CommandDefinitionStrings.CmdConfigFileOptionDescription : string.Empty, HelpName = CommandDefinitionStrings.CmdConfigFileOption, Hidden = !showHelp }.ForwardAsSingle(o => $"-property:RestoreConfigFile={CommandDirectoryContext.GetFullPath(o)}"); NoCacheOption = new Option<bool>("--no-cache") { Description = string.Empty, Hidden = true, Arity = ArgumentArity.Zero }.ForwardAs("-property:RestoreNoCache=true"); NoHttpCacheOption = new Option<bool>("--no-http-cache") { Description = showHelp ? CommandDefinitionStrings.CmdNoHttpCacheOptionDescription : string.Empty, Hidden = !showHelp, Arity = ArgumentArity.Zero }.ForwardAs("-property:RestoreNoHttpCache=true"); IgnoreFailedSourcesOption = new Option<bool>("--ignore-failed-sources") { Description = showHelp ? CommandDefinitionStrings.CmdIgnoreFailedSourcesOptionDescription : string.Empty, Hidden = !showHelp, Arity = ArgumentArity.Zero }.ForwardAs("-property:RestoreIgnoreFailedSources=true"); ForceOption = new Option<bool>("--force") { Description = CommandDefinitionStrings.CmdForceRestoreOptionDescription, Hidden = !showHelp, Arity = ArgumentArity.Zero }.ForwardAs("-property:RestoreForce=true"); if (useShortOptions) { ForceOption.Aliases.Add("-f"); } PropertiesOption = CommonOptions.CreatePropertyOption(); RestorePropertiesOption = CommonOptions.CreateRestorePropertyOption(); } private static Option<IEnumerable<string>> CreateSourceOption(bool showHelp, bool useShortOptions) { var option = new Option<IEnumerable<string>>("--source") { Description = showHelp ? CommandDefinitionStrings.CmdSourceOptionDescription : string.Empty, HelpName = CommandDefinitionStrings.CmdSourceOption, Hidden = !showHelp }.ForwardAsSingle(o => $"-property:RestoreSources={string.Join("%3B", o)}") .AllowSingleArgPerToken(); if (useShortOptions) { option.Aliases.Add("-s"); } return option; } public void AddTo(IList<Option> options) { options.Add(SourceOption); options.Add(PackagesOption); options.Add(CurrentRuntimeOption); options.Add(DisableParallelOption); options.Add(ConfigFileOption); options.Add(NoCacheOption); options.Add(NoHttpCacheOption); options.Add(IgnoreFailedSourcesOption); options.Add(ForceOption); options.Add(PropertiesOption); options.Add(RestorePropertiesOption); } }