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); }
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); }