示例#1
0
        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);
        }
示例#2
0
        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);
        }