public IEnumerable <DirectoryInfo> EnumerateDirectories(List <string> optionalPackages = null)
        {
            var cache = new PackageCache();

            if (optionalPackages == null || optionalPackages.Count == 0)
            {
                foreach (var dir in cache.EnumerateVersions("*"))
                {
                    yield return(dir);
                }
            }
            else
            {
                foreach (var p in optionalPackages)
                {
                    var result = cache.EnumerateVersions(p).ToArray();
                    if (result.Length == 0)
                    {
                        Log.Warning("Package " + p.Quote() + " was not found");
                    }
                    else
                    {
                        foreach (var dir in result)
                        {
                            yield return(dir);
                        }
                    }
                }
            }
        }
        public void InstallAll(Project project)
        {
            using (var pc = new PackageCache(Log, project.Config, this))
                pc.GetPackage(project);

            InstallCount++; // Avoid error later
        }
        void Build(LibraryProject lib, PackageCache packageCache, List <LibraryProject> failed)
        {
            var buildLog = Log.GetQuieterLog(SilentBuild);

            if (Clean)
            {
                new ProjectCleaner(buildLog).Clean(lib.Project);
                _disk.DeleteDirectory(lib.PackageDirectory);
            }
            else if (Directory.Exists(lib.PackageDirectory))
            {
                // Remove old versions
                foreach (var dir in Directory.EnumerateDirectories(lib.PackageDirectory))
                {
                    if (dir != lib.VersionDirectory)
                    {
                        _disk.DeleteDirectory(dir, true);
                    }
                }

                _disk.DeleteDirectory(Path.Combine(lib.CacheDirectory));
            }

            var fail = TryGetFailedReference(lib, failed);

            if (fail != null)
            {
                Log.Message("Skipping because " + fail.Quote() + " failed to build");
                failed.Add(lib);
                return;
            }

            var result = new ProjectBuilder(
                buildLog,
                _target,
                new BuildOptions
            {
                Configuration   = GetConfiguration(lib),
                OutputDirectory = lib.VersionDirectory,
                PackageCache    = packageCache,
                Force           = true
            })
                         .Build(lib.Project);

            if (result.ErrorCount > 0)
            {
                failed.Add(lib);
            }
        }
Exemple #4
0
 // For use by UXNinja & tests in Fuse Studio
 public static SourcePackage GetPackage(Log log, Project project)
 {
     // Passing false to disable FuseJS transpiler.
     using (var cache = new PackageCache(log, project.Config, false))
         return(cache.GetPackage(project));
 }
Exemple #5
0
 // For use by UXNinja & tests in Fuse Studio
 public static SourcePackage GetPackage(Log log, Project project)
 {
     // Passing null to disable package downloads and FuseJS transpiler.
     using (var cache = new PackageCache(log, project.Config, null))
         return(cache.GetPackage(project));
 }