示例#1
0
        public IEnumerable <string> ExplodeDirectory(ExplodeDirectory directory)
        {
            string packageFolder = directory.BottleDirectory;
            var    fileSet       = new FileSet
            {
                Include = "*.zip"
            };

            directory.Log.Trace("Searching for zip files in package directory " + packageFolder);

            var packageFileNames = _fileSystem.FileNamesFor(fileSet, packageFolder);

            return(packageFileNames.Select(file =>
            {
                var packageName = Path.GetFileNameWithoutExtension(file);
                var explodedDirectory = FileSystem.Combine(directory.DestinationDirectory, packageName);

                var request = new ExplodeRequest {
                    Directory = explodedDirectory,
                    ExplodeAction = () => Explode(file, explodedDirectory, ExplodeOptions.DeleteDestination),
                    GetVersion = () => _service.GetVersion(file),
                    LogSameVersion = () => _logger.WritePackageZipFileWasSameVersionAsExploded(file)
                };


                explode(request);

                return explodedDirectory;
            }).ToList());  // Needs to be evaluated right now.
        }
示例#2
0
 public bool Equals(ExplodeDirectory other)
 {
     if (ReferenceEquals(null, other))
     {
         return(false);
     }
     if (ReferenceEquals(this, other))
     {
         return(true);
     }
     return(Equals(other.BottleDirectory, BottleDirectory) && Equals(other.DestinationDirectory, DestinationDirectory));
 }
示例#3
0
        public IEnumerable<IPackageInfo> Load(IPackageLog log)
        {
            BottleExploder exploder = BottleExploder.GetPackageExploder(log);
            var reader = new PackageManifestReader(new FileSystem(), GetContentFolderForPackage);

            return _folders.SelectMany(dir => {
                var explodeDirectory = new ExplodeDirectory
                {
                    DestinationDirectory = _explosionDirectory,
                    BottleDirectory = dir,
                    Log = log
                };

                return exploder.ExplodeDirectory(explodeDirectory);
            }).Select(reader.LoadFromFolder);
        }
        public IEnumerable<string> ExplodeDirectory(ExplodeDirectory directory)
        {
            string packageFolder = directory.PackageDirectory;
            var fileSet = new FileSet
                          {
                              Include = "*.zip"
                          };

            directory.Log.Trace("Searching for zip files in package directory " + packageFolder);

            var packageFileNames = _fileSystem.FileNamesFor(fileSet, packageFolder);

            return packageFileNames.Select(file =>
            {
                var packageName = Path.GetFileNameWithoutExtension(file);
                var explodedDirectory = FileSystem.Combine(directory.DestinationDirectory, packageName);

                // TODO -- need more logging here. Pass in the log and have it log what happens internally
                var request = new ExplodeRequest{
                    Directory = explodedDirectory,
                    ExplodeAction = () => Explode(file, explodedDirectory, ExplodeOptions.DeleteDestination),
                    GetVersion = () => _service.GetVersion(file),
                    LogSameVersion = () => _logger.WritePackageZipFileWasSameVersionAsExploded(file)
                };


                explode(request);

                return explodedDirectory;
            }).ToList();  // Needs to be evaluated right now.
        }
 public bool Equals(ExplodeDirectory other)
 {
     if (ReferenceEquals(null, other)) return false;
     if (ReferenceEquals(this, other)) return true;
     return Equals(other.PackageDirectory, PackageDirectory) && Equals(other.DestinationDirectory, DestinationDirectory);
 }