/// <summary> /// Main method for outputting help text to the screen /// </summary> private static void WriteHelp() { HelpWriter writer = new HelpWriter(); writer.WriteBanner("bxlcacheanalyzer.exe is a tool for doing statistical analysis, input list analysis and consistency checking of a cache."); writer.WriteLine("bxlcacheanalyzer.exe [/statisticalAnalysis [/contentAnalysis] | /consistencyCheck [/rehashCASContent] | inputAssertionListDump [/inputAssertionListDumpMustIncludeRegex] [/inputAssertionListDumpMustNotIncludeRegex] | /inputAssertionListCheck [/inputAssertionListSizeDisparityMinimumFactor:double]] | [/contentBreakdown] " + "[/jsonString:string | /jsonFile:string] " + "[/sessionIDFilter:string | /weakFingerprintInputFilepath:string] " + "[/outputFile:string] " + "[/weakFingerprintOutputFilepath:string]"); writer.WriteLine(); writer.WriteOption("statisticalAnalysis", "If specified, performs a statistical analysis of the cache and outputs the results in CSV format", shortName: "sa"); writer.WriteOption("contentAnalysis", "If specified, includes per-session content size in the statistical analysis", shortName: "ca"); writer.WriteOption("consistencyCheck", "If specified, performs a consistency check of the cache", shortName: "cc"); writer.WriteOption("rehashCASContent", "If specified, all content in the CAS will be rehashed to see if any of the content has been corrupted", shortName: "rc"); writer.WriteOption("inputAssertionListDump", "If specified, all strong fingerprints found will have their input assertion lists dumped", shortName: "id"); writer.WriteOption("inputAssertionListDumpMustIncludeRegex", "Regex that must match in the input list", shortName: "ii"); writer.WriteOption("inputAssertionListDumpMustNotIncludeRegex", "Regex that must not match in the input list", shortName: "in"); writer.WriteOption("inputAssertionListCheck", "If specified, performs a check of all input assertion lists for each weak fingerprint to look for major discrepancies in list size", shortName: "ic"); writer.WriteOption("inputAssertionListSizeDisparityMinimumFactor", "Sets the minimum factor of size disparity between input assertion lists of same weak fingerprint, defaults to " + InputAssertionListChecker.DefaultDisparityFactor, shortName: "mf"); writer.WriteOption("contentBreakdown", "If specified, produce a CSV breaking down content for each session.", shortName: "cb"); writer.WriteOption("jsonString", "JSON Config string of the cache", shortName: "js"); writer.WriteOption("jsonFile", "File containing the JSON Config string of the cache", shortName: "jf"); writer.WriteOption("sessionIDFilter", "Limits the analysis to only session IDs that match the specified regex string", shortName: "sf"); writer.WriteOption("weakFingerprintInputFilepath", "If specified, the requested operations will be done with the weak fingerprints contained in the specified file (except for statisticalAnalysis which is always through sessions)", shortName: "wi"); writer.WriteOption("outputFile", "The output of the tool is redirected to the file specified. If no file is specified, the output is directed to the console", shortName: "of"); writer.WriteOption("weakFingerprintOutputFilepath", "If specified, all weak fingerprints found during execution (except for statisticalAnalysis) will be output to the specified file", shortName: "wo"); }
public static void DisplayLogo() { var hw = new HelpWriter(); hw.WriteLine(Resources.Help_Logo_VersionInfo); hw.WriteLine(Resources.Help_Logo_Copyright); hw.WriteLine(); }
private static void WriteCosineDumpPipHelp(HelpWriter writer) { writer.WriteBanner("Cosine Dump Pip Analysis"); writer.WriteModeOption(nameof(AnalysisMode.CosineDumpPip), "Generates a dump file containing information about pip(s)"); writer.WriteLine("Required"); writer.WriteOption(OutputFileOption, "The location of the output file."); writer.WriteLine("Optional"); writer.WriteOption(PipHashOption, "The formatted semistable hash of a pip to dump (must start with 'Pip', e.g., 'PipC623BCE303738C69')"); writer.WriteOption(PipTypeOption, "The type of pips to dump data for"); writer.WriteOption(MetadataOnlyOption, "Dump only the metadata for the pips, no details associated with specific types of pips."); }
private void WriteHelp() { HelpWriter writer = new HelpWriter(); writer.WriteBanner("Tool for executing and monitoring process in a sandbox"); writer.WriteLine(""); writer.WriteLine("/sandboxedProcessInfo:<file> -- Sandboxed process info input file [short: /i]"); writer.WriteLine("/sandboxedProcessResult:<file> -- Sandboxed process result output file [short: /r]"); writer.WriteLine("/enableTelemetry[+/-] -- Enable telemetry [default: false]"); writer.WriteLine("/help -- Print help message and exit [short: /?]"); }
public static void DisplayLogo() { var hw = new HelpWriter(); hw.WriteLine(string.Format( Strings.HelpText_DisplayLogo_Template, Branding.LongProductName, Branding.Version, Branding.SourceVersion )); hw.WriteLine(Strings.HelpText_DisplayLogo_Copyright); hw.WriteLine(); }
public static void WriteHelp() { HelpWriter writer = new HelpWriter(); writer.WriteLine("CreateZipPackage.exe usage:"); writer.WriteBanner("[/inputDirectory:<input directory>] /outputFile:<output file name> [/uriEncoding(+|-)>] [/fixUnixPermissions(+|-)>] [/inputFilesRoot:<relative root for input files>] [<list of files>]"); }
private static void WritePackedExecutionExporterHelp(HelpWriter writer) { writer.WriteBanner("Packed Execution Exporter"); writer.WriteModeOption(nameof(AnalysisMode.PackedExecutionExporter), "Exports the pip graph and execution data in PackedExecution format"); writer.WriteLine("Required"); writer.WriteOption(OutputDirectoryOption, "The location of the output directory."); }
public static void DisplayHelp() { var hw = new HelpWriter(); hw.WriteLine(Resources.Help_DisplayHelp_Usage); hw.WriteOption("/help", Resources.Help_DisplayHelp_Help); hw.WriteOption("/noLogo", Resources.Help_DisplayHelp_Usage); }
private static void WriteHelp() { var writer = new HelpWriter(); writer.WriteBanner("cptools.ml.offlineMapping - Tool for offline shared/nonshared prediction"); writer.WriteLine(""); writer.WriteOption("applicationConfig", "Required. File containing the application config parameters (json)", shortName: "ac"); writer.WriteOption("inputDirectory", "Required. The directory where the inputs will be taken from", shortName: "id"); writer.WriteOption("outputDirectory", "Required. The directory where the outputs will be stored", shortName: "od"); }
public void HelpWriterVerbosity() { using (var writer = new StringWriter(CultureInfo.InvariantCulture)) { HelpWriter hw = new HelpWriter(writer, 30, HelpLevel.Standard); hw.WriteLine("Standard", HelpLevel.Standard); hw.WriteLine("Verbose", HelpLevel.Verbose); writer.Flush(); Assert.Equal("Standard" + Environment.NewLine, writer.ToString()); } using (var writer = new StringWriter(CultureInfo.InvariantCulture)) { HelpWriter hw = new HelpWriter(writer, 30, HelpLevel.Verbose); hw.WriteLine("Standard", HelpLevel.Standard); hw.WriteLine("Verbose", HelpLevel.Verbose); writer.Flush(); Assert.Equal("Standard" + Environment.NewLine + "Verbose" + Environment.NewLine, writer.ToString()); } }
private static void WriteHelp(Func <AnalyzerKind, Analyzer> analyzerFactory) { HelpWriter writer = new HelpWriter(); writer.WriteBanner($"Tool for performing analysis/transformation of cached pip graphs and execution logs."); writer.WriteOption("Config", "Optional main config file to be used.", shortName: "c"); writer.WriteOption("Filter", "The filter representing the scope of script specs that should be analyzed.", shortName: "f"); writer.WriteOption("Analyzer", "One or more analyzers to run. Subsequent arguments are analyzer specific.", shortName: "a"); writer.WriteOption($"{nameof(Fix)}[+|-]", "Whether the analyzer should fix the specs."); writer.WriteLine(string.Empty); writer.WriteLine("Analyzers:"); foreach (var type in Enum.GetValues(typeof(AnalyzerKind)).Cast <AnalyzerKind>()) { var analyzer = analyzerFactory(type); if (analyzer != null) { writer.WriteBanner(I($"{type}")); analyzer.WriteHelp(writer); } } }
private static void DisplayHelpAndExit() { var hw = new HelpWriter(); hw.WriteLine("Microsoft (R) Build Accelerator LogGen"); hw.WriteLine("Copyright (C) Microsoft Corporation. All rights reserved."); hw.WriteLine("Generates logging for BuildXL."); hw.WriteBanner("Usage"); hw.WriteLine(); hw.WriteOption( "output:<path>", "Full path to desired output cs file.", shortName: "o"); hw.WriteOption( "reference:<path>", "References of the assembly passed. This is needed in case the .Net loader can't find the references using the standard .Net loading techniques.", shortName: "r"); hw.WriteOption( "a:<key>=<value>", "Allows predefined strings to be used in log messages."); hw.WriteOption( "s:<path>", "Full path to source file."); hw.WriteOption( "namespace:<string>", "Namespace generated logging should be under."); hw.WriteOption( "targetFramework:<string>", "The dotnet target runtime to generate logging for."); hw.WriteOption( "targetRuntime:<string>", "The dotnet target runtime to generate logging for [ win-x64 | osx-x64 ]"); Environment.Exit(0); }
private static void WriteHelp() { var writer = new HelpWriter(); writer.WriteBanner("cptools.ml.consolidate - Tool consolidating existing build artifact files (see cptools.builddownloader)"); writer.WriteLine(""); writer.WriteOption("applicationConfig", "Required. File containing the application config parameters (json)", shortName: "ac"); writer.WriteOption("inputDirectory", "Required. The directory where the inputs will be taken from", shortName: "id"); writer.WriteOption("outputDirectory", "Required. The directory where the outputs will be stored", shortName: "od"); writer.WriteOption("linearize", "Optional. If true, then no input will be read, only the output directory will be linearized", shortName: "lo"); writer.WriteOption("numSamples", "Optional. The number of samples to be taken (from the global output). Defaults to 1", shortName: "ns"); writer.WriteOption("sampleSize", "Optional. The size of each sample. Defaults to 10000", shortName: "ss"); writer.WriteOption("buildRF", "Optional. If the samples are already created, this will only run the random forest generator", shortName: "brfo"); writer.WriteOption("evalRF", "Optional. If the forests are already created, this will only run the evaluation phase", shortName: "erfo"); writer.WriteOption("evalCPC", "Optional. Evaluates the whole content placement classifier using a random forest and queue/machine maps", shortName: "ecpco"); }
private void WriteHelp() { HelpWriter writer = new HelpWriter(); writer.WriteBanner("Tool for executing and monitoring process in a sandbox"); writer.WriteLine(""); writer.WriteLine("/sandboxedProcessInfo:<file> -- Sandboxed process info input file [short: /i]"); writer.WriteLine("/sandboxedProcessResult:<file> -- Sandboxed process result output file [short: /r]"); writer.WriteLine("/enableTelemetry[+/-] -- Enable telemetry [default: false]"); writer.WriteLine("/showObservedAccesses[+/-] -- Show observed file/directory accesses [default: false]"); writer.WriteLine(" ReportedFileAccesses in file manifest must be set to true"); writer.WriteLine("/help -- Print help message and exit [short: /?]"); }
private static void WriteHelp() { var writer = new HelpWriter(); writer.WriteBanner("cptools.buildownloader - Tool for downloading a set of builds and sampling artifacts (files) from them"); writer.WriteLine(""); writer.WriteOption("applicationConfig", "Required. File containing the application config parameters (json)", shortName: "ac"); writer.WriteOption("year", "Required. Year from when the builds will be taken from", shortName: "y"); writer.WriteOption("month", "Required. Month from when the builds will be taken from", shortName: "m"); writer.WriteOption("day", "Required. Day from when the builds will be taken from", shortName: "d"); writer.WriteOption("numBuilds", "Required. The number of builds (from different queues) that will be sampled", shortName: "nb"); writer.WriteOption("outputDirectory", "Required. The directory where the outputs will be stored", shortName: "od"); writer.WriteOption("span", "Optional. Day span for build download. Starting from <day, d>, <span, sp> days will be downloaded (<numBuilds, nb> builds per day)", shortName: "sp"); writer.WriteOption("queueDataOnly", "Optional. If set, the queue data will be downloaded (no builds will be downloaded)", shortName: "qdo"); writer.WriteOption("includeMachineMap", "Optional. Used in conjunction with queueDataOnly. If set, the queue/machine map will be created for that specific list of queues", shortName: "imm"); }
public void HelpWriter() { // when outputting to the console, just ensure things work without crashing... var hw = new HelpWriter(); hw.WriteLine(); hw.WriteLine("Hello"); hw.WriteBanner("BANNER"); hw.WriteOption("name", "description"); using (var writer = new StringWriter(CultureInfo.InvariantCulture)) { hw = new HelpWriter(writer, 30); hw.WriteLine(); hw.WriteLine("A short line"); hw.WriteLine("A long long long long long long line"); hw.WriteOption(string.Empty, string.Empty); // test an option of length HelpWriter.DescriptionColumn - N hw.WriteOption("namenamenamenamenamenamename", string.Empty); hw.WriteOption("namenamenamenamenamenamename", "description"); // test an option of length HelpWriter.DescriptionColumn - 1 hw.WriteOption("namenamenamenamenamenamenamenam", string.Empty); hw.WriteOption("namenamenamenamenamenamenamenam", "description"); // test an option of length HelpWriter.DescriptionColumn hw.WriteOption("namenamenamenamenamenamenamename", string.Empty); hw.WriteOption("namenamenamenamenamenamenamename", "description"); // test an option of length HelpWriter.DescriptionColumn + 1 hw.WriteOption("namenamenamenamenamenamenamenamen", string.Empty); hw.WriteOption("namenamenamenamenamenamenamenamen", "description"); // test an option of length HelpWriter.DescriptionColumn + N hw.WriteOption("namenamenamenamenamenamenamenamenamenamenamename", string.Empty); hw.WriteOption("namenamenamenamenamenamenamenamenamenamenamename", "description"); // test long option name and description hw.WriteOption( "namenamenamenamenamenamenamenamenamenamenamename", "descriptiondescriptiondescriptiondescriptiondescriptiondescription"); hw.WriteBanner(string.Empty); hw.WriteBanner("banner"); hw.WriteBanner("bannerbannerbannerbannerbannerbannerbanner"); writer.Flush(); string output = writer.ToString(); string Expected = Environment.NewLine + "A short line" + Environment.NewLine + "A long long long long long" + Environment.NewLine + "long line" + Environment.NewLine + Environment.NewLine + "namenamenamenamenamenamename" + Environment.NewLine + "namenamenamenamenamenamename description" + Environment.NewLine + "namenamenamenamenamenamenamenam" + Environment.NewLine + "namenamenamenamenamenamenamenam description" + Environment.NewLine + "namenamenamenamenamenamenamename" + Environment.NewLine + "namenamenamenamenamenamenamename" + Environment.NewLine + " description" + Environment.NewLine + "namenamenamenamenamenamenamenamen" + Environment.NewLine + "namenamenamenamenamenamenamenamen" + Environment.NewLine + " description" + Environment.NewLine + "namenamenamenamenamenamenamenamenamenamenamename" + Environment.NewLine + "namenamenamenamenamenamenamenamenamenamenamename" + Environment.NewLine + " description" + Environment.NewLine + "namenamenamenamenamenamenamenamenamenamenamename" + Environment.NewLine + " descriptiondescriptiondescriptiondescriptiondescriptiondescription" + Environment.NewLine + Environment.NewLine + " - -" + Environment.NewLine + Environment.NewLine + Environment.NewLine + " - banner -" + Environment.NewLine + Environment.NewLine + Environment.NewLine + "- bannerbannerbannerbannerbannerbannerbanner -" + Environment.NewLine + Environment.NewLine; Assert.Equal(Expected, output); } }
// BUG: should display list of available qualifiers // BUG: should display list of available filter tags public static void DisplayHelp(HelpLevel helpLevel) { var hw = new HelpWriter(helpLevel); hw.WriteBanner(Strings.HelpText_DisplayHelp_BuildBanner); #region Build hw.WriteOption( "/config:<file>", Strings.HelpText_DisplayHelp_ConfigFile); hw.WriteOption( "/additionalConfigFile:<file>*", Strings.HelpText_DisplayHelp_AdditionalConfigFile, HelpLevel.Verbose); hw.WriteOption( "/qualifier:<qualifier list>", Strings.HelpText_DisplayHelp_Qualifiers); hw.WriteOption( "/objectDirectory:<output directory>", Strings.HelpText_DisplayHelp_Obj); hw.WriteOption( "/tempDirectory:<temp directory>", Strings.HelpText_DisplayHelp_TempDirectory, HelpLevel.Verbose); hw.WriteOption( "/property:<key>=<value>", Strings.HelpText_DisplayHelp_Property); hw.WriteOption( "<paths>", Strings.HelpText_DisplayHelp_Paths); #endregion hw.WriteBanner(Strings.HelpText_DisplayHelp_FilteringBanner); #region Filtering hw.WriteLine(Strings.HelpText_DisplayHelp_FilteringInfo); hw.WriteLine(); hw.WriteOption( "/filter:<deps><filter>", Strings.HelpText_DisplayHelp_Filter); hw.WriteOption( "<deps>", Strings.HelpText_DisplayHelp_DependencySelection, HelpLevel.Verbose); hw.WriteOption( "<filter>", Strings.HelpText_DisplayHelp_Filter_Expression, HelpLevel.Verbose); hw.WriteLine(Strings.HelpText_DisplayHelp_FilterTypeExplanation, HelpLevel.Verbose); hw.WriteLine(HelpLevel.Verbose); hw.WriteOption( "id", Strings.HelpText_DisplayHelp_Filter_Id, HelpLevel.Verbose); hw.WriteOption( "output", Strings.HelpText_DisplayHelp_Filter_Output + " " + Strings.HelpText_DisplayHelp_Filter_PathArgument, HelpLevel.Verbose); hw.WriteOption( "input", Strings.HelpText_DisplayHelp_Filter_Input + " " + Strings.HelpText_DisplayHelp_Filter_PathArgument, HelpLevel.Verbose); hw.WriteOption( "tag", Strings.HelpText_DisplayHelp_Filter_Tag, HelpLevel.Verbose); hw.WriteOption( "value", Strings.HelpText_DisplayHelp_Filter_Value, HelpLevel.Verbose); hw.WriteOption( "valuetransitive", Strings.HelpText_DisplayHelp_Filter_ValueTransitive, HelpLevel.Verbose); hw.WriteOption( "spec", Strings.HelpText_DisplayHelp_Filter_Spec + " " + Strings.HelpText_DisplayHelp_Filter_PathArgument, HelpLevel.Verbose); hw.WriteOption( "spec_valuetransitive", Strings.HelpText_DisplayHelp_Filter_Spec_ValueTransitive, HelpLevel.Verbose); hw.WriteOption( "specref", Strings.HelpText_DisplayHelp_Filter_SpecDependencies, HelpLevel.Verbose); hw.WriteLine(Strings.HelpText_DisplayHelp_FilterFunctionExplanation, HelpLevel.Verbose); hw.WriteOption("dpt", Strings.HelpText_DisplayHelp_Filter_DependentsFunction, HelpLevel.Verbose); hw.WriteOption("dpc", Strings.HelpText_DisplayHelp_Filter_DependenciesFunction, HelpLevel.Verbose); hw.WriteOption("copydpt", Strings.HelpText_DisplayHelp_Filter_CopyDependentsFunction, HelpLevel.Verbose); hw.WriteOption("requiredfor", Strings.HelpText_DisplayHelp_Filter_RequiredInputsFunction, HelpLevel.Verbose); hw.WriteLine(HelpLevel.Verbose); hw.WriteLine(Strings.HelpText_DisplayHelp_Filter_Examples, HelpLevel.Verbose); // Note to maintainer: if you're changing one of those samples, // make sure that they're valid by testing them in FilterParserTests. hw.WriteOption( " /f:~(tag='test')", Strings.HelpText_DisplayHelp_FilterExampleNoTest, HelpLevel.Verbose); hw.WriteOption( " /f:+spec='src\\utilities\\*'", Strings.HelpText_DisplayHelp_FilterExampleDirectory, HelpLevel.Verbose); hw.WriteOption( " /f:(tag='csc.exe'and~(tag='test'))", Strings.HelpText_DisplayHelp_Filter_ExamplesBinaryFilter, HelpLevel.Verbose); hw.WriteOption( "/canonicalizeFilterOutputs[+|-]", Strings.HelpText_DisplayHelp_CanonicalizeFilterOutputs); // TODO: This option is DScript only. It isn't shown in the help text because we have the goal of // removing it and unifying it with the standard filtering above. // hw.WriteOption("scriptFile" #endregion hw.WriteBanner(Strings.HelpText_DisplayHelp_LoggingBanner); #region Logging hw.WriteOption( "/maxNumPipTelemetryBatches:<int>", Strings.HelpText_DisplayHelp_MaxNumPipTelemetryBatches); hw.WriteOption( "/logsDirectory:<path>", Strings.HelpText_DisplayHelp_LogsDirectory); hw.WriteOption( "/logPrefix:<string>", Strings.HelpText_DisplayHelp_LogPrefix, HelpLevel.Verbose); hw.WriteOption( "/logsToRetain:<number>", Strings.HelpText_DisplayHelp_LogsToRetain, HelpLevel.Verbose); hw.WriteOption( "/customLog:<file>=<id list>", Strings.HelpText_DisplayHelp_CustomLog, HelpLevel.Verbose); hw.WriteOption( "/noLog:<id list>", Strings.HelpText_DisplayHelp_NoLog, HelpLevel.Verbose); hw.WriteOption( "/consoleVerbosity:<level>", Strings.HelpText_DisplayHelp_ConsoleVerbosity, HelpLevel.Verbose); hw.WriteOption( "/fileVerbosity:<level>", Strings.HelpText_DisplayHelp_FileVerbosity, HelpLevel.Verbose); hw.WriteOption( "/logExecution[+|-]", Strings.HelpText_DisplayHelp_LogExecution, HelpLevel.Verbose); hw.WriteOption( "/noLog:<id list>", Strings.HelpText_DisplayHelp_NoExecutionLog, HelpLevel.Verbose); hw.WriteOption( "/logProcesses[+|-]", Strings.HelpText_DisplayHelp_LogProcesses, HelpLevel.Verbose); hw.WriteOption( "/logProcessData[+|-]", Strings.HelpText_DisplayHelp_LogProcessData, HelpLevel.Verbose); hw.WriteOption( "/logFileAccessTables[+|-]", Strings.HelpText_DisplayHelp_LogFileEnforcementTables, HelpLevel.Verbose); hw.WriteOption( "/logObservedFileAccesses[+|-]", Strings.HelpText_DisplayHelp_LogObservedAccesses, HelpLevel.Verbose); hw.WriteOption( "/logOutput:<option>", Strings.HelpText_DisplayHelp_LogOutput, HelpLevel.Verbose); hw.WriteOption( "/environment:<environment>", string.Format( CultureInfo.InvariantCulture, Strings.HelpText_DisplayHelp_Environment, string.Join(",", Enum.GetNames(typeof(BuildXL.Utilities.Configuration.ExecutionEnvironment)))), HelpLevel.Verbose); hw.WriteOption( "/remoteTelemetry[+|-]", Strings.HelpText_DisplayHelp_RemoteTelemetry); hw.WriteOption( "/replayWarnings[+|-]", Strings.HelpText_DisplayHelp_ReplayWarnings); hw.WriteOption( "/logStats[+|-]", Strings.HelpText_DisplayHelp_LogStats, HelpLevel.Verbose); hw.WriteOption( "/logStatus[+|-]", Strings.HelpText_DisplayHelp_LogStatus, HelpLevel.Verbose); hw.WriteOption( "/traceInfo:<Key>=<Value>", Strings.HelpText_DisplayHelp_TraceInfo, HelpLevel.Verbose); hw.WriteOption( "/logCounters[+|-]", Strings.HelpText_DisplayHelp_LogCounters, HelpLevel.Verbose); hw.WriteOption( "/logMemory[+|-]", Strings.HelpText_DisplayHelp_LogMemory, HelpLevel.Verbose); hw.WriteOption( "/storeFingerprints[+|-]", Strings.HelpText_DisplayHelp_StoreFingerprints, HelpLevel.Verbose); hw.WriteOption( "/storeFingerprints:<Default|ExecutionFingerprintsOnly|IgnoreExistingEntries>", Strings.HelpText_DisplayHelp_StoreFingerprintsWithMode, HelpLevel.Verbose); hw.WriteOption( "/substSource:[path]", Strings.HelpText_DisplayHelp_SubstSource, HelpLevel.Verbose); hw.WriteOption( "/substTarget:[path]", Strings.HelpText_DisplayHelp_SubstTarget, HelpLevel.Verbose); hw.WriteOption( "/fancyConsole[+|-]", Strings.HelpText_DisplayHelp_FancyConsole, HelpLevel.Verbose); hw.WriteOption( "/fancyConsoleMaxStatusPips:<number>", Strings.HelpText_DisplayHelp_FancyConsoleMaxStatusPips, HelpLevel.Verbose); hw.WriteOption( "/profileScript[+|-]", Strings.HelpText_DisplayHelp_ProfileScript, HelpLevel.Verbose); hw.WriteOption( "/profileReportDestination:[path]", string.Format( CultureInfo.InvariantCulture, Strings.HelpText_DisplayHelp_ProfileReportDestination, FrontEndConfigurationExtensions.DefaultProfileReportFilename), HelpLevel.Verbose); hw.WriteOption( "/trackBuildsInUserFolder[+-]", Strings.HelpText_DisplayHelp_TrackBuildsInUserFolder, HelpLevel.Verbose ); hw.WriteOption( "/trackGvfsProjections[+-]", Strings.HelpText_DisplayHelp_TrackGvfsProjections, HelpLevel.Verbose ); hw.WriteOption( "/trackMethodInvocations[+|-]", string.Format( CultureInfo.InvariantCulture, Strings.HelpText_DisplayHelp_TrackMethodInvocations), HelpLevel.Verbose); hw.WriteOption( "/useCustomPipDescriptionOnConsole[+|-]", Strings.HelpText_DisplayHelp_UseCustomPipDescriptionOnConsole, HelpLevel.Verbose); hw.WriteOption( "/cacheMiss[+|-|<path>|{<changeset list}]", Strings.HelpText_DisplayHelp_CacheMiss, HelpLevel.Verbose); hw.WriteOption( "/cacheMissDiffFormat:[format]", Strings.HelpText_DisplayHelp_CacheMissDiffFormat, HelpLevel.Verbose); hw.WriteOption( "/scriptShowSlowest[+|-]", Strings.HelpText_DisplayHelp_ScriptShowSlowest, HelpLevel.Verbose); hw.WriteOption( "/scriptShowLargest[+|-]", Strings.HelpText_DisplayHelp_ScriptShowLargest, HelpLevel.Verbose); #endregion hw.WriteBanner(Strings.HelpText_DisplayHelp_ErrorsAndWarningsBanner); #region ErrorsAndWarnings hw.WriteOption( "/warnAsError[+|-]", Strings.HelpText_DisplayHelp_WarnAsError, HelpLevel.Verbose); hw.WriteOption( "/warnAsError[+|-]:<warn list>", Strings.HelpText_DisplayHelp_WarnAsErrorWithList, HelpLevel.Verbose); hw.WriteOption( "/noWarn:<warn list>", Strings.HelpText_DisplayHelp_NoWarn, HelpLevel.Verbose); hw.WriteOption( "/stopOnFirstError[+|-]", Strings.HelpText_DisplayHelp_StopOnFirstError); hw.WriteOption( "/color[+|-]", Strings.HelpText_DisplayHelp_Color, HelpLevel.Verbose); #endregion hw.WriteBanner(Strings.HelpText_DisplayHelp_CachingBanner); #region Caching hw.WriteOption( "/allowFetchingCachedGraphFromContentCache", Strings.HelpText_DisplayHelp_AllowFetchingCachedGraphFromContentCache, HelpLevel.Verbose); hw.WriteOption( "/cacheConfigFilePath:<file>", Strings.HelpText_DisplayHelp_CacheConfigFilePath); hw.WriteOption( "/cacheDirectory:<artifact cache directory>", Strings.HelpText_DisplayHelp_CacheDirectory); hw.WriteOption( "/cacheSessionName:<unique session name>", Strings.HelpText_DisplayHelp_CacheSessionName, HelpLevel.Verbose); hw.WriteOption( "/cacheGraph[+|-]", Strings.HelpText_DisplayHelp_CacheGraph, HelpLevel.Verbose); hw.WriteOption( "/cacheSpecs[+|-]", Strings.HelpText_DisplayHelp_CacheSpecs, HelpLevel.Verbose); hw.WriteOption( "/compressGraphFiles[+|-]", Strings.HelpText_DisplayHelp_CompressGraphFiles, HelpLevel.Verbose); hw.WriteOption( "/determinismProbe[+|-]", Strings.HelpText_DisplayHelp_DeterminismProbeUsage, HelpLevel.Verbose); hw.WriteOption( "/engineCacheDirectory:<engine cache directory>", Strings.HelpText_DisplayHelp_EngineCacheDirectory, HelpLevel.Verbose); hw.WriteOption( "/reuseEngineState[+|-]", Strings.HelpText_DisplayHelp_ReuseEngineState, HelpLevel.Verbose); hw.WriteOption( "/reuseOutputsOnDisk[+|-]", Strings.HelpText_DisplayHelp_ReuseOutputsOnDisk, HelpLevel.Verbose); hw.WriteOption( "/server[+|-]", Strings.HelpText_DisplayHelp_Server); hw.WriteOption( "/serverMaxIdleTimeInMinutes", Strings.HelpText_DisplayHelp_ServerMaxIdleTimeInMinutes); hw.WriteOption( "/serverDeploymentDir", Strings.HelpText_DisplayHelp_ServerDeploymentDir, HelpLevel.Verbose); hw.WriteOption( "/storeOutputsToCache", Strings.HelpText_DisplayHelp_StoreOutputsToCache, HelpLevel.Verbose); hw.WriteOption( "/verifyCacheLookupPin[+|-]", Strings.HelpText_DisplayHelp_VerifyCacheLookupPin, HelpLevel.Verbose); hw.WriteOption( "/pinCachedOutputs[+|-]", Strings.HelpText_DisplayHelp_PinCachedOutputs, HelpLevel.Verbose); hw.WriteOption( "/pathSetThreshold", Strings.HelpText_DisplayHelp_PathSetThreshold, HelpLevel.Verbose); hw.WriteOption( "/augmentingPathSetCommonalityFactor:(0, 1]", Strings.HelpText_DisplayHelp_AugmentingPathSetCommonalityFactor, HelpLevel.Verbose); hw.WriteOption( "/pathSetAugmentationMonitoring", Strings.HelpText_DisplayHelp_PathSetAugmentationMonitoring, HelpLevel.Verbose); hw.WriteOption( "/vfsCasRoot<vfs cas root directory>", Strings.HelpText_DisplayHelp_VfsCasRoot, HelpLevel.Verbose); hw.WriteOption( "/enableDedupChunk[+|-]", Strings.HelpText_DisplayHelp_EnableDedupChunk, HelpLevel.Verbose); #endregion hw.WriteBanner(Strings.HelpText_DisplayHelp_ExecutionControlBanner); #region ExecutionControl hw.WriteOption( "/unsafe_AllowDuplicateTemporaryDirectory[+|-]", Strings.HelpText_DisplayHelp_AllowDuplicateTemporaryDirectory); hw.WriteOption( "/incremental[+|-]", Strings.HelpText_DisplayHelp_Incremental); hw.WriteOption( "/incrementalScheduling[+|-]", Strings.HelpText_DisplayHelp_IncrementalScheduling); hw.WriteOption( "/useHardlinks[+|-]", Strings.HelpText_DisplayHelp_UseHardlinks, HelpLevel.Verbose); // This feature is used to support distributed build tests internally but is not an externally supported feature. // Don't include it in help text /* * hw.WriteOption( * "/rootMap:<drive letter>=<path>", * Strings.HelpText_DisplayHelp_RootMap, * HelpLevel.Verbose);*/ hw.WriteOption( "/injectCacheMisses:<rate and options>", Strings.HelpText_DisplayHelp_InjectCacheMisses, HelpLevel.Verbose); hw.WriteOption( "/pipDefaultTimeout:<ms>", Strings.HelpText_DisplayHelp_PipTimeout); hw.WriteOption( "/pipDefaultWarningTimeout:<ms>", Strings.HelpText_DisplayHelp_PipWarningTimeout); hw.WriteOption( "/pipTimeoutMultiplier:<float>", Strings.HelpText_DisplayHelp_PipTimeoutMultiplier, HelpLevel.Verbose); hw.WriteOption( "/pipWarningTimeoutMultiplier:<float>", Strings.HelpText_DisplayHelp_PipWarningTimeoutMultiplier, HelpLevel.Verbose); hw.WriteOption( "/maxProc:<number of concurrent processes>", Strings.HelpText_DisplayHelp_MaxProc); hw.WriteOption( "/maxProcMultiplier:<double>", Strings.HelpText_DisplayHelp_MaxProcMultiplier, HelpLevel.Verbose); hw.WriteOption( "/maxLightProc:<number of concurrent light processes>", Strings.HelpText_DisplayHelp_MaxLightProc); hw.WriteOption( "/maxIO:<number of concurrent I/O operations>", Strings.HelpText_DisplayHelp_MaxIO); hw.WriteOption( "/maxIOMultiplier:<double>", Strings.HelpText_DisplayHelp_MaxIOMultiplier, HelpLevel.Verbose); hw.WriteOption( "/maxCacheLookup:<number of concurrent cache lookup operations>", Strings.HelpText_DisplayHelp_MaxCacheLookup); hw.WriteOption( "/maxChooseWorker:<number of concurrent choose worker operations>", Strings.HelpText_DisplayHelp_MaxCacheLookup); hw.WriteOption( "/maxMaterialize:<number of concurrent materialize operations>", Strings.HelpText_DisplayHelp_MaxMaterialize); hw.WriteOption( "/lowPriority[+|-]", Strings.HelpText_DisplayHelp_LowPriority); hw.WriteOption( "/enableHistoricCommitMemoryProjection[+|-]", Strings.HelpText_DisplayHelp_EnableHistoricCommitMemoryProjection, HelpLevel.Verbose); hw.WriteOption( "/maxCommitUtilizationPercentage:<number>", Strings.HelpText_DisplayHelp_MaxCommitUtilizationPercentage, HelpLevel.Verbose); hw.WriteOption( "/maxRamUtilizationPercentage:<number>", Strings.HelpText_DisplayHelp_MaxRamUtilizationPercentage, HelpLevel.Verbose); hw.WriteOption( "/minAvailableRamMb:<number>", Strings.HelpText_DisplayHelp_MinAvailableRam, HelpLevel.Verbose); hw.WriteOption( "/manageMemoryMode:<memory mode>", Strings.HelpText_DisplayHelp_ManageMemoryMode, HelpLevel.Verbose); hw.WriteOption( "/phase:<engine phase>", Strings.HelpText_DisplayHelp_Phase); hw.WriteOption( "/maxRelativeOutputDirectoryLength:<characters>", Strings.HelpText_DisplayHelp_MaxRelativeOutputDirectoryLength, HelpLevel.Verbose); hw.WriteOption( "/buildLockPolling:<seconds>", Strings.HelpText_DisplayHelp_BuildLockPolling, HelpLevel.Verbose); hw.WriteOption( "/buildWaitTimeout:<minutes>", Strings.HelpText_DisplayHelp_BuildWaitTimeout, HelpLevel.Verbose); hw.WriteOption( "/enableLazyOutputs[+|-]", Strings.HelpText_DisplayHelp_EnableLazyOutputs, HelpLevel.Verbose); hw.WriteOption( "/cleanTempDirectories[+|-]", Strings.HelpText_DisplayHelp_CleanTempDirectories, HelpLevel.Verbose); hw.WriteOption( "/cleanOnly[+|-]", Strings.HelpText_DisplayHelp_CleanOnly, HelpLevel.Verbose); hw.WriteOption( "/cacheOnly[+|-]", Strings.HelpText_DisplayHelp_CacheOnly, HelpLevel.Verbose); hw.WriteOption( "/scrub[+|-]", Strings.HelpText_DisplayHelp_Scrub, HelpLevel.Verbose); hw.WriteOption( "/scrubDirectory:<path>", Strings.HelpText_DisplayHelp_ScrubDirectory, HelpLevel.Verbose); hw.WriteOption( "/analyzeDependencyViolations[+|-]", Strings.HelpText_DisplayHelp_AnalyzeDependencyViolations, HelpLevel.Verbose); hw.WriteOption( "/emitSpotlightIndexingWarning[+|-]", Strings.HelpText_DisplayHelp_EmitSpotlightIndexingWarning, HelpLevel.Verbose); hw.WriteOption( "/disableConHostSharing[+|-]", Strings.HelpText_DisplayHelp_DisableConHostSharing, HelpLevel.Verbose); hw.WriteOption( "/scanChangeJournal[+|-]", Strings.HelpText_DisplayHelp_ScanChangeJournal, HelpLevel.Verbose); hw.WriteOption( "/scanChangeJournalTimeLimitInSec:<seconds>", Strings.HelpText_DisplayHelp_ScanChangeJournalTimeLimitInSec, HelpLevel.Verbose); hw.WriteOption( "/fileSystemMode<option>", Strings.HelpText_DisplayHelp_FileSystemMode, HelpLevel.Verbose); hw.WriteOption( "/flushPageCacheToFileSystemOnStoringOutputsToCache[+|-]", Strings.HelpText_DisplayHelp_FlushPageCacheToFileSystemOnStoringOutputsToCache, HelpLevel.Verbose); hw.WriteOption( "/unsafe_forceSkipDeps[+|-]", Strings.HelpText_DisplayHelp_ForceSkipDependencies, HelpLevel.Verbose); hw.WriteOption( "/normalizeReadTimestamps[+|-]", Strings.HelpText_DisplayHelp_NormalizeReadTimestamps, HelpLevel.Verbose); hw.WriteOption( "/useLargeNtClosePreallocatedList[+|-]", Strings.HelpText_DisplayHelp_UseLargeNtClosePreallocatedList, HelpLevel.Verbose); hw.WriteOption( "/useExtraThreadToDrainNtClose[+|-]", Strings.HelpText_DisplayHelp_UseExtraThreadToDrainNtClose, HelpLevel.Verbose); hw.WriteOption( "/maskUntrackedAccesses[+|-]", Strings.HelpText_DisplayHelp_MaskUntrackedAccesses, HelpLevel.Verbose); hw.WriteOption( "/treatDirectoryAsAbsentFileOnHashingInputContent[+|-]", Strings.HelpText_DisplayHelp_TreatDirectoryAsAbsentFileOnHashingInputContent, HelpLevel.Verbose); hw.WriteOption( "/unsafe_AllowCopySymlink[+|-]", Strings.HelpText_DisplayHelp_AllowCopySymlink, HelpLevel.Verbose); hw.WriteOption( "/server[+|-]", Strings.HelpText_DisplayHelp_Server); hw.WriteOption( "/serverDeploymentDir", Strings.HelpText_DisplayHelp_ServerDeploymentDir, HelpLevel.Verbose); hw.WriteOption( "/processRetries:<number of retries>", Strings.HelpText_DisplayHelp_ProcessRetries, HelpLevel.Verbose); hw.WriteOption( "/fileChangeTrackerInitializationMode:<mode>", Strings.HelpText_DisplayHelp_FileChangeTrackerInitializationMode, HelpLevel.Verbose); hw.WriteOption( "/fileChangeTrackingExclusionRoot:<path>", Strings.HelpText_DisplayHelp_FileChangeTrackingExclusionRoot, HelpLevel.Verbose); hw.WriteOption( "/fileChangeTrackingInclusionRoot:<path>", Strings.HelpText_DisplayHelp_FileChangeTrackingInclusionRoot, HelpLevel.Verbose); hw.WriteOption( "/inferNonExistenceBasedOnParentPathInRealFileSystem[+|-]", Strings.HelpText_DisplayHelp_InferNonExistenceBasedOnParentPathInRealFileSystem, HelpLevel.Verbose); hw.WriteOption( "/outputMaterializationExclusionRoot:<path>", Strings.HelpText_DisplayHelp_OutputMaterializationExclusionRoot, HelpLevel.Verbose); hw.WriteOption( "/enforceAccessPoliciesOnDirectoryCreation[+|-]", Strings.HelpText_DisplayHelp_EnforceAccessPoliciesOnDirectoryCreation, HelpLevel.Verbose); hw.WriteOption( "/useFileContentTable[+|-]", Strings.HelpText_DisplayHelp_UseFileContentTable, HelpLevel.Verbose); hw.WriteOption( "/fileContentTableFile:<path>", Strings.HelpText_DisplayHelp_FileContentTableFile, HelpLevel.Verbose); hw.WriteOption( "/fileContentTableEntryTimeToLive:<number>", Strings.HelpText_DisplayHelp_FileContentTableEntryTimeToLive, HelpLevel.Verbose); hw.WriteOption( "/updateFileContentTableByScanningChangeJournal[+|-]", Strings.HelpText_DisplayHelp_UpdateFileContentTableByScanningChangeJournal, HelpLevel.Verbose); hw.WriteOption( "/adminRequiredProcessExecutionMode:<mode>", Strings.HelpText_DisplayHelp_AdminRequiredProcessExecutionMode, HelpLevel.Verbose); hw.WriteOption( "/vmConcurrencyLimit:<max number of processes executed in VM>", Strings.HelpText_DisplayHelp_VmConcurrencyLimit, HelpLevel.Verbose); hw.WriteOption( "/treatAbsentDirectoryAsExistentUnderOpaque[+|-]", Strings.HelpText_DisplayHelp_TreatAbsentDirectoryAsExistentUnderOpaque, HelpLevel.Verbose); #endregion hw.WriteBanner( Strings.HelpText_DisplayHelp_DistributedBuildBanner, HelpLevel.Verbose); #region DistributedBuild hw.WriteOption( "/distributeCacheLookups[+|-]", Strings.HelpText_DisplayHelp_DistributeCacheLookups, HelpLevel.Verbose); hw.WriteOption( "/distributedBuildRole:<distributed build role>", Strings.HelpText_DisplayHelp_DistributedBuildRole, HelpLevel.Verbose); hw.WriteOption( "/distributedBuildServicePort:<local TCP port>", Strings.HelpText_DisplayHelp_DistributedBuildServicePort, HelpLevel.Verbose); hw.WriteOption( "/distributedBuildWorker:<IP address or host name>:<local TCP port>", Strings.HelpText_DisplayHelp_DistributedBuildWorker, HelpLevel.Verbose); hw.WriteOption( "/enableWorkerSourceFileMaterialization[+|-]", Strings.HelpText_DisplayHelp_DistributedBuildWorkerSourceMaterialization, HelpLevel.Verbose); hw.WriteOption( "/masterCpuMultiplier:<double>", Strings.HelpText_DisplayHelp_MasterCpuMultiplier, HelpLevel.Verbose); hw.WriteOption( "/masterCacheLookupMultiplier:<double>", Strings.HelpText_DisplayHelp_MasterCacheLookupMultiplier, HelpLevel.Verbose); hw.WriteOption( "/validateDistribution:[+|-]", Strings.HelpText_DisplayHelp_ValidateDistribution, HelpLevel.Verbose); #endregion hw.WriteBanner(Strings.HelpText_DisplayHelp_DiagBanner); #region Diagnostics hw.WriteOption( "/diagnostic:<area>", Strings.HelpText_DisplayHelp_Diagnostic); hw.WriteOption( "/experiment.<flag>[+|-]", GetExperimentalFlagHelp()); hw.WriteOption( "/breakOnUnexpectedFileAccess[+|-]", Strings.HelpText_DisplayHelp_BreakOnUnexpectedFileAccess, HelpLevel.Verbose); hw.WriteOption( "/unsafe_AllowMissingOutput:<filename>", Strings.HelpText_DisplayHelp_AllowMissingOutputs, HelpLevel.Verbose); hw.WriteOption( "/TranslateDirectory:<fromPath>::<toPath>", Strings.HelpText_DisplayHelp_TranslateDirectory, HelpLevel.Verbose); hw.WriteOption( "/unsafe_MonitorFileAccesses[+|-]", Strings.HelpText_DisplayHelp_EnforceFileAccesses); hw.WriteOption( "/unsafe_IgnoreZwRenameFileInformation[+|-]", Strings.HelpText_DisplayHelp_IgnoreZwRenameFileInformation, HelpLevel.Verbose); hw.WriteOption( "/unsafe_IgnoreZwOtherFileInformation[+|-]", Strings.HelpText_DisplayHelp_IgnoreZwOtherFileInformation, HelpLevel.Verbose); hw.WriteOption( "/unsafe_IgnoreNonCreateFileReparsePoints[+|-]", Strings.HelpText_DisplayHelp_IgnoreNonCreateFileReparsePoints, HelpLevel.Verbose); hw.WriteOption( "/unsafe_IgnoreSetFileInformationByHandle[+|-]", Strings.HelpText_DisplayHelp_IgnoreSetFileInformationByHandle, HelpLevel.Verbose); hw.WriteOption( "/unsafe_IgnoreReparsePoints[+|-]", Strings.HelpText_DisplayHelp_IgnoreReparsePoints, HelpLevel.Verbose); hw.WriteOption( "/unsafe_IgnoreFullReparsePointResolving[+|-]", Strings.HelpText_DisplayHelp_IgnoreFullReparsePointResolving, HelpLevel.Verbose); hw.WriteOption( "/unsafe_IgnorePreloadedDlls[+|-]", Strings.HelpText_DisplayHelp_IgnorePreloadedDlls, HelpLevel.Verbose); hw.WriteOption( "/unsafe_IgnoreDynamicWritesOnAbsentProbes[+|-|:IgnoreNothing|:IgnoreDirectoryProbes|:IgnoreFileProbes|:IgnoreAll]", Strings.HelpText_DisplayHelp_IgnoreDynamicWritesOnAbsentProbes, HelpLevel.Verbose); hw.WriteOption( "/sandboxKind:<sandbox kind>", Strings.HelpText_DisplayHelp_SandboxKind, HelpLevel.Verbose); hw.WriteOption( "/unsafe_DisableDetours[+|-]", Strings.HelpText_DisplayHelp_DisableDetours, HelpLevel.Verbose); hw.WriteOption( "/logProcessDetouringStatus[+|-]", Strings.HelpText_DisplayHelp_LogProcessDetouringStatus, HelpLevel.Verbose); hw.WriteOption( "/hardExitOnErrorInDetours[+|-]", Strings.HelpText_DisplayHelp_HardExitOnErrorInDetours, HelpLevel.Verbose); hw.WriteOption( "/checkDetoursMessageCount[+|-]", Strings.HelpText_DisplayHelp_CheckDetoursMessageCount, HelpLevel.Verbose); hw.WriteOption( "/allowInternalDetoursErrorNotificationFile[+|-]", Strings.HelpText_DisplayHelp_AllowInternalDetoursErrorNotificationFile, HelpLevel.Verbose); #if PLATFORM_OSX hw.WriteOption( "/kextNumberOfKextConnections:<number>", Strings.HelpText_DisplayHelp_KextNumberOfKextConnections, HelpLevel.Verbose); hw.WriteOption( "/kextReportQueueSizeMb:<number>", Strings.HelpText_DisplayHelp_KextReportQueueSizeMb, HelpLevel.Verbose); hw.WriteOption( "/kextThrottleCpuUsageBlockThresholdPercent:<number>", Strings.HelpText_DisplayHelp_KextThrottleCpuUsageBlockThresholdPercent, HelpLevel.Verbose); hw.WriteOption( "/kextThrottleCpuUsageWakeupThresholdPercent:<number>", Strings.HelpText_DisplayHelp_KextThrottleCpuUsageWakeupThresholdPercent, HelpLevel.Verbose); hw.WriteOption( "/KextThrottleMinAvailableRamMB:<number>", Strings.HelpText_DisplayHelp_KextThrottleMinAvailableRamMB, HelpLevel.Verbose); hw.WriteOption( "/maxMemoryPressureLevel:<option>", Strings.HelpText_DisplayHelp_MaxMemoryPressureLevel, HelpLevel.Verbose); #endif hw.WriteOption( "/unsafe_ExistingDirectoryProbesAsEnumerations[+|-]", Strings.HelpText_DisplayHelp_ExistingDirectoryProbesAsEnumerations, HelpLevel.Verbose); hw.WriteOption( "/unsafe_ignoreGetFinalPathNameByHandle[+|-]", Strings.HelpText_DisplayHelp_IgnoreGetFinalPathNameByHandle, HelpLevel.Verbose); hw.WriteOption( "/unsafe_IgnoreNtCreateFile[+|-]", Strings.HelpText_DisplayHelp_IgnoreNtCreateFile, HelpLevel.Verbose); hw.WriteOption( "/unsafe_IgnoreZwCreateOpenQueryFamily[+|-]", Strings.HelpText_DisplayHelp_IgnoreZwCreateOpenQueryFamily, HelpLevel.Verbose); hw.WriteOption( "/unsafe_OptimizedAstConversion[+|-]", Strings.HelpText_DisplayHelp_OptimizedAstConversion, HelpLevel.Verbose); hw.WriteOption( "/unsafe_PreserveOutputs[+|-|:Reset]", Strings.HelpText_DisplayHelp_PreserveOutputs, HelpLevel.Verbose); hw.WriteOption( "/unsafe_UnexpectedFileAccessesAreErrors[+|-]", Strings.HelpText_DisplayHelp_UnexpectedFileAccessesAreErrors, HelpLevel.Verbose); hw.WriteOption( "/debug_LoadGraph:<fingerprint | path | name>", Strings.HelpText_DisplayHelp_LoadGraph, HelpLevel.Verbose); hw.WriteOption( "/launchDebugger", Strings.HelpText_DisplayHelp_LaunchDebugger, HelpLevel.Verbose); #endregion hw.WriteBanner(Strings.HelpText_DisplayHelp_ScriptBanner); #region DScript hw.WriteOption( "/debugScript[+|-]", Strings.HelpText_DisplayHelp_ScriptDebugScript); hw.WriteOption( "/debuggerBreakOnExit[+|-]", Strings.HelpText_DisplayHelp_ScriptDebugScriptBreakOnExit); hw.WriteOption( "/debuggerPort", Strings.HelpText_DisplayHelp_ScriptDebugScriptPort); hw.WriteOption( "/unsafe_disableCycleDetection[+|-]", Strings.HelpText_DisplayHelp_DisableCycleDetection); hw.WriteOption( "/maxFrontEndConcurrency:<number of processes>", Strings.HelpText_DisplayHelp_MaxFrontEndConcurrency); hw.WriteOption( "/enableIncrementalFrontEnd:[+|-]", Strings.HelpText_DisplayHelp_EnableIncrementalFrontEnd); hw.WriteOption( "/maxTypeCheckingConcurrency[+|-]", Strings.HelpText_DisplayHelp_MaxTypeCheckingConcurrency); #endregion #region Component Governance Manifest hw.WriteBanner(Strings.HelpText_DisplayHelp_CgManifestBanner); hw.WriteOption("/generateCgManifestForNugets:<file>", Strings.HelpText_DisplayHelp_GenerateCgManifest); hw.WriteOption("/validateCgManifestForNugets:<file>", Strings.HelpText_DisplayHelp_ValidateCgManifest); #endregion hw.WriteBanner(Strings.HelpText_DisplayHelp_MsBuildBanner); #region MSBuild hw.WriteOption( "/msbuild.logVerbosity:<q[uiet] | m[inimal] | n[ormal] | d[etailed] | diag[nostic]>", Strings.HelpText_DisplayHelp_MsBuild_LogVerbosity); hw.WriteOption( "/msbuild.enableBinLogTracing[+|-]", Strings.HelpText_DisplayHelp_MsBuild_EnableBinLogTracing); hw.WriteOption( "/msbuild.enableEngineTracing[+|-]", Strings.HelpText_DisplayHelp_MsBuild_EnableEngineTracing); #endregion hw.WriteBanner(Strings.HelpText_DisplayHelp_MiscBanner); #region Misc hw.WriteOption( "/usePartialEvaluation[+|-]", Strings.HelpText_DisplayHelp_UsePartialEvaluation, HelpLevel.Verbose); hw.WriteOption( "@<file>", Strings.HelpText_DisplayHelp_ResponseFile); hw.WriteOption( "/help:[standard|verbose]", Strings.HelpText_DisplayHelp_Help); hw.WriteOption( "/interactive[+|-]", Strings.HelpText_DisplayHelp_Interactive, HelpLevel.Verbose); hw.WriteOption( "/noLogo", Strings.HelpText_DisplayHelp_NoLogo); hw.WriteOption( "/snap:<file>", Strings.HelpText_DisplayHelp_Snapshot, HelpLevel.Verbose); hw.WriteOption( "/snapshotMode:<snapshot mode>", Strings.HelpText_DisplayHelp_SnapshotMode, HelpLevel.Verbose); /* The viewer is currently broken. Leaving the code around so we can dust it off at some point. AB#1609082 * hw.WriteOption( * "/viewer:<mode>", * Strings.HelpText_DisplayHelp_ViewerOptions);*/ hw.WriteOption( "/relatedActivityId:<guid>", Strings.HelpText_DiplayHelp_RelatedActivityId, HelpLevel.Verbose); hw.WriteOption( "/vs[+|-]", Strings.HelpText_DiplayHelp_VS); hw.WriteOption( "/solutionName:<string>", Strings.HelpText_DisplayHelp_SolutionName, HelpLevel.Verbose); hw.WriteOption( "/vsOutputSrc[+|-]", Strings.HelpText_DisplayHelp_VsOutputSrc, HelpLevel.Verbose); hw.WriteOption( "/inputChanges:<file>", Strings.HelpText_DisplayHelp_InputChanges); hw.WriteOption( "/telemetryTagPrefix:<string>", Strings.HelpText_DisplayHelp_TelemetryTagPrefix); hw.WriteOption( "/unsafe_DisableGraphPostValidation[+|-]", Strings.HelpText_DisplayHelp_DisableGraphPostValidation); hw.WriteOption( "/logPipStaticFingerprintTexts[+|-]", Strings.HelpText_DisplayHelp_LogPipStaticFingerprintTexts); hw.WriteOption( "/posixDeleteMode:[NoRun|RunFirst|RunLast]", Strings.HelpText_DisplayHelp_PosixDeleteMode); hw.WriteOption("/minimumDiskSpaceForPipsGb:<int representing disk space in Gigabyte>", Strings.HelpText_DisplayHelp_DiskSpaceForPip); hw.WriteOption("/numRetryFailedPipsOnAnotherWorker:<int>", Strings.HelpText_DisplayHelp_NumberofFailedPipRetry); hw.WriteOption("/enablePlugins[+|-]", Strings.HelpText_DisplayHelp_EnablePlugins, HelpLevel.Verbose); hw.WriteOption("/pluginPaths:<path>", Strings.HelpText_DisplayHelp_PluginPaths, HelpLevel.Verbose); hw.WriteOption("/exitOnNewGraph", Strings.HelpText_DisplayHelp_ExitOnNewGraph, HelpLevel.Verbose); #endregion if (helpLevel < HelpLevel.Verbose) { hw.WriteLine(); hw.WriteLine(Strings.HelpText_DisplayHelp_ShowingStandardHelp); } }
private static void WriteHelp() { HelpWriter writer = new HelpWriter(); writer.WriteBanner($"{Branding.AnalyzerExecutableName} - Tool for performing analysis/transformation of cached pip graphs and execution logs."); writer.WriteLine(""); writer.WriteLine("Analysis Modes:"); writer.WriteLine(""); WriteFingerprintTextAnalyzerHelp(writer); writer.WriteLine(""); WritePipGraphExporterHelp(writer); writer.WriteLine(""); WriteDirMembershipHelp(writer); writer.WriteLine(""); WriteDumpProcessAnalyzerHelp(writer); writer.WriteLine(""); WriteExportDgmlAnalyzerHelp(writer); writer.WriteLine(""); WriteObservedInputHelp(writer); writer.WriteLine(""); WriteProcessDetouringHelp(writer); writer.WriteLine(""); WritePipExecutionPerformanceAnalyzerHelp(writer); writer.WriteLine(""); WriteObservedInputSummaryHelp(writer); writer.WriteLine(""); WriteObservedAccessHelp(writer); writer.WriteLine(""); WriteToolEnumerationHelp(writer); writer.WriteLine(""); WriteCriticalPathAnalyzerHelp(writer); writer.WriteLine(""); WriteDumpPipAnalyzerHelp(writer); writer.WriteLine(""); WriteProcessRunScriptAnalyzerHelp(writer); writer.WriteLine(""); WriteWhitelistAnalyzerHelp(writer); writer.WriteLine(""); WriteSummaryAnalyzerHelp(writer); writer.WriteLine(""); WriteBuildStatusHelp(writer); writer.WriteLine(""); WriteWinIdeDependencyAnalyzeHelp(writer); writer.WriteLine(""); WritePerfSummaryAnalyzerHelp(writer); writer.WriteLine(""); WriteEventStatsHelp(writer); writer.WriteLine(""); WriteIncrementalSchedulingStateAnalyzerHelp(writer); writer.WriteLine(""); WriteFileChangeTrackerAnalyzerHelp(writer); writer.WriteLine(""); WriteInputTrackerAnalyzerHelp(writer); writer.WriteLine(""); WriteFingerprintStoreAnalyzerHelp(writer); writer.WriteLine(""); WritePipFingerprintAnalyzerHelp(writer); writer.WriteLine(""); WriteCacheMissHelp(writer); writer.WriteLine(""); WriteCacheDumpHelp(writer); writer.WriteLine(""); WriteBuildSimulatorHelp(writer); #if FEATURE_VSTS_ARTIFACTSERVICES writer.WriteLine(""); WriteCacheHitPredictorHelp(writer); #endif writer.WriteLine(""); WriteDependencyAnalyzerHelp(writer); writer.WriteLine(""); WriteGraphDiffAnalyzerHelp(writer); writer.WriteLine(""); WriteDumpMountsAnalyzerHelp(writer); writer.WriteLine(""); WritePipFilterHelp(writer); writer.WriteLine(""); WriteFailedPipsDumpAnalyzerHelp(writer); writer.WriteLine(""); WriteCosineDumpPipHelp(writer); }