| File: Commands\Workload\WorkloadCommandParser.cs | Web Access |
| Project: src\sdk\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. using System.CommandLine; using System.CommandLine.Invocation; using Microsoft.DotNet.Cli.Commands.Workload.Clean; using Microsoft.DotNet.Cli.Commands.Workload.Config; using Microsoft.DotNet.Cli.Commands.Workload.Elevate; using Microsoft.DotNet.Cli.Commands.Workload.History; using Microsoft.DotNet.Cli.Commands.Workload.Install; using Microsoft.DotNet.Cli.Commands.Workload.List; using Microsoft.DotNet.Cli.Commands.Workload.Repair; using Microsoft.DotNet.Cli.Commands.Workload.Restore; using Microsoft.DotNet.Cli.Commands.Workload.Search; using Microsoft.DotNet.Cli.Commands.Workload.Uninstall; using Microsoft.DotNet.Cli.Commands.Workload.Update; using Microsoft.DotNet.Cli.Extensions; using Microsoft.DotNet.Cli.NuGetPackageDownloader; using Microsoft.DotNet.Cli.Utils; using Command = System.CommandLine.Command; namespace Microsoft.DotNet.Cli.Commands.Workload; internal static class WorkloadCommandParser { public static void ConfigureCommand(WorkloadCommandDefinition def) { def.SetAction(parseResult => parseResult.HandleMissingCommand()); def.InfoOption.Action = new ShowWorkloadsInfoAction(); def.VersionOption.Action = new ShowWorkloadsVersionOption(); def.InstallCommand.SetAction(parseResult => new WorkloadInstallCommand(parseResult).Execute()); def.UpdateCommand.SetAction(parseResult => new WorkloadUpdateCommand(parseResult).Execute()); def.ListCommand.SetAction(parseResult => new WorkloadListCommand(parseResult).Execute()); def.SearchCommand.SetAction(parseResult => new WorkloadSearchCommand(parseResult).Execute()); def.SearchCommand.VersionCommand.SetAction(parseResult => new WorkloadSearchVersionsCommand(parseResult).Execute()); def.UninstallCommand.SetAction(parseResult => new WorkloadUninstallCommand(parseResult).Execute()); def.RepairCommand.SetAction(parseResult => new WorkloadRepairCommand(parseResult).Execute()); def.RestoreCommand.SetAction(parseResult => new WorkloadRestoreCommand(parseResult).Execute()); def.CleanCommand.SetAction(parseResult => new WorkloadCleanCommand(parseResult).Execute()); def.ElevateCommand.SetAction(parseResult => new WorkloadElevateCommand(parseResult).Execute()); def.ConfigCommand.SetAction(parseResult => new WorkloadConfigCommand(parseResult).Execute()); def.HistoryCommand.SetAction(parseResult => new WorkloadHistoryCommand(parseResult).Execute()); } public static RestoreActionConfig ToRestoreActionConfig(this NuGetRestoreOptions options, ParseResult parseResult) { return new RestoreActionConfig(DisableParallel: parseResult.GetValue(options.DisableParallelOption), NoCache: parseResult.GetValue(options.NoCacheOption) || parseResult.GetValue(options.NoHttpCacheOption), IgnoreFailedSources: parseResult.GetValue(options.IgnoreFailedSourcesOption), Interactive: parseResult.GetValue(options.InteractiveOption)); } private sealed class ShowWorkloadsInfoAction : SynchronousCommandLineAction { public override bool Terminating => true; public override int Invoke(ParseResult parseResult) { new WorkloadInfoHelper(isInteractive: false).ShowWorkloadsInfo(); Reporter.Output.WriteLine(string.Empty); return 0; } } private sealed class ShowWorkloadsVersionOption : SynchronousCommandLineAction { public override bool Terminating => true; public override int Invoke(ParseResult parseResult) { Reporter.Output.WriteLine(WorkloadInfoHelper.GetWorkloadsVersion()); Reporter.Output.WriteLine(string.Empty); return 0; } } }