in src/Analysis/Codelyzer.Analysis/AnalyzerCLI.cs [66:138]
public void HandleCommand(String[] args)
{
Parser.Default.ParseArguments<Options>(args)
.WithNotParsed(HandleParseError)
.WithParsed<Options>(o =>
{
if (!string.IsNullOrEmpty(o.ProjectPath))
{
Project = true;
FilePath = o.ProjectPath;
}
else
{
Project = false;
FilePath = o.SolutionPath;
}
if (!string.IsNullOrEmpty(o.JsonFilePath))
{
Configuration.ExportSettings.GenerateJsonOutput = true;
Configuration.ExportSettings.OutputPath = o.JsonFilePath;
}
if (!string.IsNullOrEmpty(o.GenerateBinFiles))
{
Configuration.MetaDataSettings.GenerateBinFiles = o.GenerateBinFiles.ToLower() == bool.TrueString.ToLower();
}
if (!string.IsNullOrEmpty(o.ReferenceData))
{
Configuration.MetaDataSettings.ReferenceData = o.ReferenceData.ToLower() == bool.TrueString.ToLower();
}
if (!string.IsNullOrEmpty(o.LocationData))
{
Configuration.MetaDataSettings.LocationData = o.LocationData.ToLower() == bool.TrueString.ToLower();
}
if (!string.IsNullOrEmpty(o.DetailedAnalysis))
{
var result = o.DetailedAnalysis.ToLower() == bool.TrueString.ToLower();
Configuration.MetaDataSettings.EnumDeclarations = result;
Configuration.MetaDataSettings.StructDeclarations = result;
Configuration.MetaDataSettings.InterfaceDeclarations = result;
Configuration.MetaDataSettings.DeclarationNodes = result;
Configuration.MetaDataSettings.Annotations = result;
Configuration.MetaDataSettings.ElementAccess = result;
Configuration.MetaDataSettings.MemberAccess = result;
}
else if (!string.IsNullOrEmpty(o.MetaDataDetails))
{
ConfigureMetaDataDetails(o.MetaDataDetails, Configuration.MetaDataSettings);
}
if (!string.IsNullOrEmpty(o.ConcurrentThreads))
{
int.TryParse(o.ConcurrentThreads, out int concurrentThreads);
Configuration.ConcurrentThreads = concurrentThreads > 0 ? concurrentThreads : Constants.DefaultConcurrentThreads;
}
if (!string.IsNullOrEmpty(o.AnalyzeFailed))
{
Configuration.AnalyzeFailedProjects = o.AnalyzeFailed.ToLower() == bool.TrueString.ToLower();
}
});
if (FilePath == null)
{
Console.WriteLine("Project or Solution File path is missing");
Environment.Exit(-1);
}
}