Exemple #1
0
        public AnalysisResult Run(OctopusProject project)
        {
            var analysisContext = new AnalysisContext
            {
                ProjectName    = project.Name,
                ConfigFilePath = project.Path
            };

            this.LoadEnvironments(analysisContext);
            this.AnalyseVariableUsage(analysisContext);
            this.AnalyseDefinedVars(analysisContext);

            return(analysisContext.Result);
        }
Exemple #2
0
        private static void Display(AnalysisResult result, Options opts, OctopusProject project)
        {
            int           tableWidth   = 140;
            List <string> environments = result.Environments.Keys.ToList();

            Console.WriteLine("Config file : " + project.Path + "/Web.Release.config");
            var tableSeparator = new String('-', tableWidth).ToString();

            environments.ForEach(environment =>
            {
                if (result.Environments[environment].EndsWith("-DMZ") && opts.IgnoreDmz)
                {
                    return;
                }

                Console.WriteLine(tableSeparator);
                DisplayCentered(project.Name + " - Environment : " + result.Environments[environment], tableWidth);
                Console.WriteLine(tableSeparator);
                WriteTableLine(new List <string> {
                    "Missing variables", "Unused variables"
                }, tableWidth, true);
                Console.WriteLine(tableSeparator);

                var missingVars = result.GetMissingVariablesForEnvironment(environment);
                var unusedVars  = result.GetUnusedVariabledForEnvironment(environment);

                var linesCount = Math.Max(missingVars.Count, unusedVars.Count);

                for (var i = 0; i < linesCount; i++)
                {
                    string missingVarText = string.Empty;
                    string unusedVarText  = string.Empty;


                    if (i < missingVars.Count)
                    {
                        missingVarText = missingVars[i].Name;
                    }


                    if (i < unusedVars.Count)
                    {
                        unusedVarText = unusedVars[i];
                    }

                    WriteTableLine(new List <string> {
                        missingVarText, unusedVarText
                    }, tableWidth);

                    if (i < missingVars.Count && missingVars[i].Context.Any() && opts.DisplayVariableUsage)
                    {
                        WriteTableLine(new List <string> {
                            "  Usage : ", string.Empty
                        }, tableWidth);

                        missingVars[i].Context.ForEach(c =>
                        {
                            WriteTableLine(new List <string> {
                                "   - " + c, string.Empty
                            }, tableWidth);
                        });

                        WriteTableLine(new List <string> {
                            string.Empty, string.Empty
                        }, tableWidth);
                    }
                }
                Console.WriteLine(tableSeparator);
                Console.WriteLine("");

                if (opts.PaginateResults && !environments.Last().Equals(environment))
                {
                    Console.WriteLine("Press enter to display next page...");
                    Console.ReadLine();
                    Console.Clear();
                }
            });
        }