Beispiel #1
0
        public override int Execute([NotNull] CommandContext context, [NotNull] Settings settings)
        {
            var projectsToAnalyze = PathUtility.GetProjectPaths(settings.ProjectOrSolutionPath, out var entry);

            // Remove all projects that we want to skip.
            projectsToAnalyze.RemoveAll(p =>
            {
                var projectName = Path.GetFileNameWithoutExtension(p);
                return(settings.Skip?.Contains(projectName, StringComparer.OrdinalIgnoreCase) ?? false);
            });

            var targetFramework = settings.TargetFramework;
            var analyzerResults = new List <ProjectAnalyzerResult>();
            var projectCache    = new HashSet <Project>(new ProjectComparer());

            _console.WriteLine();

            return(_console.Status().Start($"Analyzing...", ctx =>
            {
                ctx.Refresh();

                _console.MarkupLine($"Analyzing [yellow]{Path.GetFileName(entry)}[/]");

                foreach (var projectToAnalyze in projectsToAnalyze)
                {
                    // Perform a design time build of the project.
                    var buildResult = _builder.Build(
                        projectToAnalyze,
                        targetFramework,
                        settings.Skip,
                        projectCache);

                    // Update the cache of built projects.
                    projectCache.Add(buildResult.Project);
                    foreach (var item in buildResult.Dependencies)
                    {
                        projectCache.Add(item);
                    }

                    // Analyze the project.
                    var analyzeResult = _analyzer.Analyze(buildResult.Project);
                    if (settings.Exclude?.Length > 0)
                    {
                        // Filter packages that should be excluded.
                        analyzeResult = analyzeResult.Filter(settings.Exclude);
                    }

                    analyzerResults.Add(analyzeResult);
                }

                // Write the rport to the console
                _reporter.WriteToConsole(analyzerResults);

                // Return the correct exit code.
                return GetExitCode(settings, analyzerResults);
            }));
        }
Beispiel #2
0
        public override int Execute(CommandContext context, Settings settings)
        {
            var projectsToAnalyze = PathUtility.GetProjectPaths(settings.ProjectOrSolutionPath, out var entry);

            // Remove all projects that we want to skip.
            projectsToAnalyze.RemoveAll(p =>
            {
                var projectName = Path.GetFileNameWithoutExtension(p);
                return(settings.Skip?.Contains(projectName, StringComparer.OrdinalIgnoreCase) ?? false);
            });

            _console.WriteLine();
            _console.Write("Processing ");
            _console.ForegroundColor = ConsoleColor.Yellow;
            _console.Write(Path.GetFileName(entry));
            _console.ResetColor();
            _console.WriteLine("...");

            var targetFramework = settings.TargetFramework;

            var analyzerResults = new List <ProjectAnalyzerResult>();
            var projectCache    = new HashSet <Project>(new ProjectComparer());

            foreach (var projectToAnalyze in projectsToAnalyze)
            {
                // Perform a design time build of the project.
                var buildResult = _builder.Build(
                    projectToAnalyze,
                    targetFramework,
                    settings.Skip,
                    projectCache);

                // Update the cache of built projects.
                projectCache.Add(buildResult.Project);
                foreach (var item in buildResult.Dependencies)
                {
                    projectCache.Add(item);
                }

                // Analyze the project.
                var analyzeResult = _analyzer.Analyze(buildResult.Project);

                if (settings.Exclude?.Length > 0)
                {
                    // Filter packages that should be excluded.
                    analyzeResult = analyzeResult.Filter(settings.Exclude);
                }

                analyzerResults.Add(analyzeResult);
            }

            _reporter.WriteToConsole(analyzerResults);

            return(GetExitCode(settings, analyzerResults));
        }
Beispiel #3
0
        public override int Execute(CommandContext context, Settings settings)
        {
            settings.ProjectPath = PathUtility.GetProjectPath(settings.ProjectPath);

            // Analyze the project.
            var project = _builder.Build(settings.ProjectPath, settings.TargetFramework);
            var result  = _analyzer.Analyze(project);

            if (settings.Ignore?.Length > 0)
            {
                // Filter packages that should be excluded.
                result = result.Filter(settings.Ignore);
            }

            _reporter.WriteToConsole(result);

            return(GetExitCode(settings, result));
        }