private static List <string> GetOwerhead(Dep dep) { if (owerheadCache.ContainsKey(dep)) { return(owerheadCache[dep]); } var checker = new DepsChecker( Path.Combine(Helper.CurrentWorkspace, dep.Name), dep.Configuration, Helper.GetModules()); var owerhead = checker.GetCheckDepsResult().ConfigOverhead; var names = owerhead.Select(path => path.Split('/', '\\').FirstOrDefault()).Distinct().ToList(); return(owerheadCache[dep] = names); }
protected override int Execute() { var cwd = Directory.GetCurrentDirectory(); var ok = true; configuration = configuration ?? "full-build"; ConsoleWriter.WriteInfo($"Checking {configuration} configuration result:"); var result = new DepsChecker(cwd, configuration, Helper.GetModules()).GetCheckDepsResult(); if (result.NoYamlInstallSection.Any()) { ok = false; ConsoleWriter.WriteWarning("No 'install' section in modules:"); foreach (var m in result.NoYamlInstallSection) { ConsoleWriter.WriteBuildWarning("\t- " + m); } } if (result.NotInDeps.Any()) { ok = false; ConsoleWriter.WriteWarning("Found references in *csproj, but not found in deps:"); var refs = result.NotInDeps.GroupBy(r => r.Reference); foreach (var group in refs.OrderBy(g => g.Key)) { ConsoleWriter.WriteBuildWarning("\t- " + group.Key); if (!showAll) { continue; } foreach (var file in group) { ConsoleWriter.WriteLine("\t\t" + file.CsprojFile); } } } if (result.NotUsedDeps.Any() && !showShort) { ok = false; ConsoleWriter.WriteWarning("Extra deps:"); foreach (var m in result.NotUsedDeps) { ConsoleWriter.WriteBuildWarning("\t- " + m); } } var owerhead = new SortedSet <string>(result.ConfigOverhead.Where(m => !result.NotUsedDeps.Contains(m))); if (owerhead.Any() && !showShort) { ok = false; ConsoleWriter.WriteWarning("Config owerhead:"); foreach (var m in owerhead) { ConsoleWriter.WriteBuildWarning("\t- " + m); } } if (ok) { ConsoleWriter.WriteOk("No problems with deps"); } else { if (result.NotInDeps.Any()) { ConsoleWriter.WriteInfo("See also 'ref fix' command."); } } return(0); }