File: Commands\Workload\WorkloadCommandNuGetRestoreActionConfigOptions.cs
Web Access
Project: ..\..\..\src\Cli\dotnet\dotnet.csproj (dotnet)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
#nullable disable
 
using System.CommandLine;
using Microsoft.DotNet.Cli.Extensions;
using Microsoft.DotNet.Cli.NuGetPackageDownloader;
 
namespace Microsoft.DotNet.Cli.Commands.Workload;
 
internal static class WorkloadCommandNuGetRestoreActionConfigOptions
{
    public static Option<bool> DisableParallelOption = new ForwardedOption<bool>("--disable-parallel")
    {
        Description = CliCommandStrings.CmdDisableParallelOptionDescription,
        Arity = ArgumentArity.Zero
    };
 
    public static Option<bool> NoCacheOption = new ForwardedOption<bool>("--no-cache")
    {
        Description = CliCommandStrings.CmdNoCacheOptionDescription,
        Hidden = true,
        Arity = ArgumentArity.Zero
    };
 
    public static Option<bool> NoHttpCacheOption = new ForwardedOption<bool>("--no-http-cache")
    {
        Description = CliCommandStrings.CmdNoCacheOptionDescription,
        Arity = ArgumentArity.Zero
    };
 
    public static Option<bool> IgnoreFailedSourcesOption = new ForwardedOption<bool>("--ignore-failed-sources")
    {
        Description = CliCommandStrings.CmdIgnoreFailedSourcesOptionDescription,
        Arity = ArgumentArity.Zero
    };
 
    public static Option<bool> InteractiveRestoreOption = CommonOptions.InteractiveOption();
 
    public static Option<bool> HiddenDisableParallelOption = new ForwardedOption<bool>("--disable-parallel")
    {
        Description = CliCommandStrings.CmdDisableParallelOptionDescription,
        Arity = ArgumentArity.Zero
    }.Hide();
 
    public static Option<bool> HiddenNoCacheOption = new ForwardedOption<bool>("--no-cache")
    {
        Description = CliCommandStrings.CmdNoCacheOptionDescription,
        Arity = ArgumentArity.Zero
    }.Hide();
 
    public static Option<bool> HiddenNoHttpCacheOption = new ForwardedOption<bool>("--no-http-cache")
    {
        Description = CliCommandStrings.CmdNoCacheOptionDescription,
        Arity = ArgumentArity.Zero
    }.Hide();
 
    public static Option<bool> HiddenIgnoreFailedSourcesOption = new ForwardedOption<bool>("--ignore-failed-sources")
    {
        Description = CliCommandStrings.CmdIgnoreFailedSourcesOptionDescription,
        Arity = ArgumentArity.Zero
    }.Hide();
 
    public static Option<bool> HiddenInteractiveRestoreOption = new ForwardedOption<bool>("--interactive")
    {
        Description = CliStrings.CommandInteractiveOptionDescription,
    }.Hide();
 
    public static RestoreActionConfig ToRestoreActionConfig(this ParseResult parseResult)
    {
        return new RestoreActionConfig(DisableParallel: parseResult.GetValue(DisableParallelOption),
            NoCache: parseResult.GetValue(NoCacheOption) || parseResult.GetValue(NoHttpCacheOption),
            IgnoreFailedSources: parseResult.GetValue(IgnoreFailedSourcesOption),
            Interactive: parseResult.GetValue(InteractiveRestoreOption));
    }
 
    public static void AddWorkloadCommandNuGetRestoreActionConfigOptions(this Command command, bool Hide = false)
    {
        command.Options.Add(Hide ? HiddenDisableParallelOption : DisableParallelOption);
        command.Options.Add(Hide ? HiddenIgnoreFailedSourcesOption : IgnoreFailedSourcesOption);
        command.Options.Add(Hide ? HiddenNoCacheOption : NoCacheOption);
        command.Options.Add(Hide ? HiddenNoHttpCacheOption : NoHttpCacheOption);
        command.Options.Add(Hide ? HiddenInteractiveRestoreOption : InteractiveRestoreOption);
    }
}