Example #1
0
        public IPackageDef Process(IPackageDef packageDef)
        {
            StandardPackageDef zippedPackageDef = new StandardPackageDef();
            List <string>      filesToZip       = new List <string>();

            foreach (IFilesSource childSource in packageDef.ListChildSources())
            {
                if (sourcesToZip.Contains(childSource.Id))
                {
                    foreach (PackagedFileInfo file in childSource.ListFiles())
                    {
                        if (false == LoggingHelper.LogIfFilteredOut(file.FullPath.ToString(), filter, logger))
                        {
                            continue;
                        }

                        logger.Log("Adding file '{0}' to zip package", file.FullPath);
                        filesToZip.Add(file.FullPath.ToString());
                    }
                }
            }

            zipper.ZipFiles(zipFileName, baseDir, compressionLevel, filesToZip);

            SingleFileSource singleFileSource = new SingleFileSource("zip", zipFileName);

            zippedPackageDef.AddFilesSource(singleFileSource);

            return(zippedPackageDef);
        }
Example #2
0
        private bool TryToTransformSingleFileSource(SingleFileSource source, FilesList filesList)
        {
            if (!transformations.ContainsKey(source.Id))
            {
                return(false);
            }

            CopyProcessorTransformation transformation = transformations[source.Id];

            if ((transformation.Options & CopyProcessorTransformationOptions.SingleFile) == 0)
            {
                return(false);
            }

            LocalPath destinationPath = transformation.DestinationPath;

            PackagedFileInfo sourceFile              = source.ListFiles().AsQueryable().First();
            FullPath         destinationFullPath     = destinationRootDir.CombineWith(destinationPath);
            FileFullPath     destinationFileFullPath = destinationFullPath.ToFileFullPath();

            filesList.AddFile(new PackagedFileInfo(destinationFileFullPath));
            copier.Copy(sourceFile.FileFullPath, destinationFileFullPath);

            return(true);
        }