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); }
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(); } }); }