| File: CommandLine\CommandLineSwitchesAccessor.cs | Web Access |
| Project: src\msbuild\src\MSBuild\MSBuild.csproj (MSBuild) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using static Microsoft.Build.CommandLine.Experimental.CommandLineSwitches; namespace Microsoft.Build.CommandLine.Experimental { internal readonly struct CommandLineSwitchesAccessor { private readonly CommandLineSwitches switches; internal CommandLineSwitchesAccessor(CommandLineSwitches switches) { this.switches = switches; } // Parameterless switches public bool? Help => GetParameterlessSwitchValue(ParameterlessSwitch.Help); public bool? Version => GetParameterlessSwitchValue(ParameterlessSwitch.Version); public bool? NoAutoResponse => GetParameterlessSwitchValue(ParameterlessSwitch.NoAutoResponse); public bool? NoConsoleLogger => GetParameterlessSwitchValue(ParameterlessSwitch.NoConsoleLogger); public bool? FileLogger => GetParameterlessSwitchValue(ParameterlessSwitch.FileLogger); public bool? FileLogger1 => GetParameterlessSwitchValue(ParameterlessSwitch.FileLogger1); public bool? FileLogger2 => GetParameterlessSwitchValue(ParameterlessSwitch.FileLogger2); public bool? FileLogger3 => GetParameterlessSwitchValue(ParameterlessSwitch.FileLogger3); public bool? FileLogger4 => GetParameterlessSwitchValue(ParameterlessSwitch.FileLogger4); public bool? FileLogger5 => GetParameterlessSwitchValue(ParameterlessSwitch.FileLogger5); public bool? FileLogger6 => GetParameterlessSwitchValue(ParameterlessSwitch.FileLogger6); public bool? FileLogger7 => GetParameterlessSwitchValue(ParameterlessSwitch.FileLogger7); public bool? FileLogger8 => GetParameterlessSwitchValue(ParameterlessSwitch.FileLogger8); public bool? FileLogger9 => GetParameterlessSwitchValue(ParameterlessSwitch.FileLogger9); public bool? DistributedFileLogger => GetParameterlessSwitchValue(ParameterlessSwitch.DistributedFileLogger); #if DEBUG public bool? WaitForDebugger => GetParameterlessSwitchValue(ParameterlessSwitch.WaitForDebugger); #endif // Parameterized switches public string[]? Project => GetParameterizedSwitchValue(ParameterizedSwitch.Project); public string[]? Target => GetParameterizedSwitchValue(ParameterizedSwitch.Target); public string[]? Property => GetParameterizedSwitchValue(ParameterizedSwitch.Property); public string[]? Logger => GetParameterizedSwitchValue(ParameterizedSwitch.Logger); public string[]? DistributedLogger => GetParameterizedSwitchValue(ParameterizedSwitch.DistributedLogger); public string[]? Verbosity => GetParameterizedSwitchValue(ParameterizedSwitch.Verbosity); #if FEATURE_XML_SCHEMA_VALIDATION public string[]? Validate => GetParameterizedSwitchValue(ParameterizedSwitch.Validate); #endif public string[]? ConsoleLoggerParameters => GetParameterizedSwitchValue(ParameterizedSwitch.ConsoleLoggerParameters); public string[]? NodeMode => GetParameterizedSwitchValue(ParameterizedSwitch.NodeMode); public string[]? MaxCpuCount => GetParameterizedSwitchValue(ParameterizedSwitch.MaxCPUCount); public string[]? IgnoreProjectExtensions => GetParameterizedSwitchValue(ParameterizedSwitch.IgnoreProjectExtensions); public string[]? ToolsVersion => GetParameterizedSwitchValue(ParameterizedSwitch.ToolsVersion); public string[]? FileLoggerParameters => GetParameterizedSwitchValue(ParameterizedSwitch.FileLoggerParameters); public string[]? FileLoggerParameters1 => GetParameterizedSwitchValue(ParameterizedSwitch.FileLoggerParameters1); public string[]? FileLoggerParameters2 => GetParameterizedSwitchValue(ParameterizedSwitch.FileLoggerParameters2); public string[]? FileLoggerParameters3 => GetParameterizedSwitchValue(ParameterizedSwitch.FileLoggerParameters3); public string[]? FileLoggerParameters4 => GetParameterizedSwitchValue(ParameterizedSwitch.FileLoggerParameters4); public string[]? FileLoggerParameters5 => GetParameterizedSwitchValue(ParameterizedSwitch.FileLoggerParameters5); public string[]? FileLoggerParameters6 => GetParameterizedSwitchValue(ParameterizedSwitch.FileLoggerParameters6); public string[]? FileLoggerParameters7 => GetParameterizedSwitchValue(ParameterizedSwitch.FileLoggerParameters7); public string[]? FileLoggerParameters8 => GetParameterizedSwitchValue(ParameterizedSwitch.FileLoggerParameters8); public string[]? FileLoggerParameters9 => GetParameterizedSwitchValue(ParameterizedSwitch.FileLoggerParameters9); public string[]? TerminalLogger => GetParameterizedSwitchValue(ParameterizedSwitch.TerminalLogger); public string[]? TerminalLoggerParameters => GetParameterizedSwitchValue(ParameterizedSwitch.TerminalLoggerParameters); public string[]? NodeReuse => GetParameterizedSwitchValue(ParameterizedSwitch.NodeReuse); public string[]? Preprocess => GetParameterizedSwitchValue(ParameterizedSwitch.Preprocess); public string[]? Targets => GetParameterizedSwitchValue(ParameterizedSwitch.Targets); public string[]? WarningsAsErrors => GetParameterizedSwitchValue(ParameterizedSwitch.WarningsAsErrors); public string[]? WarningsNotAsErrors => GetParameterizedSwitchValue(ParameterizedSwitch.WarningsNotAsErrors); public string[]? WarningsAsMessages => GetParameterizedSwitchValue(ParameterizedSwitch.WarningsAsMessages); public string[]? BinaryLogger => GetParameterizedSwitchValue(ParameterizedSwitch.BinaryLogger); public string[]? Check => GetParameterizedSwitchValue(ParameterizedSwitch.Check); public string[]? Restore => GetParameterizedSwitchValue(ParameterizedSwitch.Restore); public string[]? ProfileEvaluation => GetParameterizedSwitchValue(ParameterizedSwitch.ProfileEvaluation); public string[]? RestoreProperty => GetParameterizedSwitchValue(ParameterizedSwitch.RestoreProperty); public string[]? Interactive => GetParameterizedSwitchValue(ParameterizedSwitch.Interactive); public string[]? IsolateProjects => GetParameterizedSwitchValue(ParameterizedSwitch.IsolateProjects); public string[]? GraphBuild => GetParameterizedSwitchValue(ParameterizedSwitch.GraphBuild); public string[]? InputResultsCaches => GetParameterizedSwitchValue(ParameterizedSwitch.InputResultsCaches); public string[]? OutputResultsCache => GetParameterizedSwitchValue(ParameterizedSwitch.OutputResultsCache); #if FEATURE_REPORTFILEACCESSES public string[]? ReportFileAccesses => GetParameterizedSwitchValue(ParameterizedSwitch.ReportFileAccesses); #endif public string[]? LowPriority => GetParameterizedSwitchValue(ParameterizedSwitch.LowPriority); public string[]? Question => GetParameterizedSwitchValue(ParameterizedSwitch.Question); public string[]? DetailedSummary => GetParameterizedSwitchValue(ParameterizedSwitch.DetailedSummary); public string[]? GetProperty => GetParameterizedSwitchValue(ParameterizedSwitch.GetProperty); public string[]? GetItem => GetParameterizedSwitchValue(ParameterizedSwitch.GetItem); public string[]? GetTargetResult => GetParameterizedSwitchValue(ParameterizedSwitch.GetTargetResult); public string[]? GetResultOutputFile => GetParameterizedSwitchValue(ParameterizedSwitch.GetResultOutputFile); public string[]? FeatureAvailability => GetParameterizedSwitchValue(ParameterizedSwitch.FeatureAvailability); public string[]? MultiThreaded => GetParameterizedSwitchValue(ParameterizedSwitch.MultiThreaded); public string[]? NoLogo => GetParameterizedSwitchValue(ParameterizedSwitch.NoLogo); private bool? GetParameterlessSwitchValue(ParameterlessSwitch switchType) => switches.IsParameterlessSwitchSet(switchType) ? switches[switchType] : null; private string[]? GetParameterizedSwitchValue(ParameterizedSwitch switchType) => switches.IsParameterizedSwitchSet(switchType) ? switches[switchType] : null; } }