From bfb20ed4d98e2dcc9efb9ecfa50218ef143caa6c Mon Sep 17 00:00:00 2001 From: N1c0 Date: Wed, 8 Apr 2015 14:13:21 +0300 Subject: [PATCH 1/3] Hierarchy support in Zip task Added hierarchy zipping in Zip task when InputBaseDirectory is provided --- common.tasks | 52 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 20 deletions(-) diff --git a/common.tasks b/common.tasks index 9439a45..47ea3f0 100644 --- a/common.tasks +++ b/common.tasks @@ -4,28 +4,40 @@ + - + - Path.GetFullPath(f.ItemSpec)).Where(n => n.StartsWith(baseDir)); + + using (var archive = new ZipArchive(new FileStream(OutputFileName, fileMode), ZipArchiveMode.Create, leaveOpen: false)) { - foreach (var inputFileName in InputFileNames.Select(f => f.ItemSpec)) + foreach (var inputFileName in filesToZip) + { + var entryName = baseDir.Length == 0 + ? Path.GetFileName(inputFileName) + : inputFileName.Substring(baseDir.Length + 1); + + Log.LogMessage(MessageImportance.High, "Zipping '" + entryName + "' from " + inputFileName); + + var archiveEntry = archive.CreateEntry(entryName); + using (var fs = new FileStream(inputFileName, FileMode.Open)) { - var archiveEntry = archive.CreateEntry(Path.GetFileName(inputFileName)); - using (var fs = new FileStream(inputFileName, FileMode.Open)) - { - using (var zipStream = archiveEntry.Open()) - { - fs.CopyTo(zipStream); - } - } + using (var zipStream = archiveEntry.Open()) + { + fs.CopyTo(zipStream); + } } + } } ]]> @@ -38,7 +50,7 @@ - + @@ -47,16 +59,16 @@ From a243bc8797d211038f6ddee88e9a683218cb4188 Mon Sep 17 00:00:00 2001 From: N1c0 Date: Wed, 8 Apr 2015 14:22:50 +0300 Subject: [PATCH 2/3] Usage examples Updated examples. --- README.md | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e790ccd..6fd3c69 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Useful MSBuild inline tasks and targets. Import the common.tasks and/or common.t Usage examples -Zip task: +Zip task (folders hierarchy ignored): ```xml @@ -19,6 +19,32 @@ Zip task: ``` +Zip task (folders hierarchy maintained relative to InputBaseDirectory): + +```xml + + + + + + +``` +Zip task (folders hierarchy maintained relative to InputBaseDirectory): + +```xml + + + +``` + SafeGitClean: ``` @@ -26,4 +52,4 @@ msbuild common.targets /p:BackupDir=C:\temp\backup /p:DeleteBackupDir=true ``` If BackupDir is not provided a directory in %TEMP% will be created -The default value for DeleteBackupDir is 'false' \ No newline at end of file +The default value for DeleteBackupDir is 'false' From a8ba9d7a10651bf0226ef84a816ce93f4de18746 Mon Sep 17 00:00:00 2001 From: N1c0 Date: Wed, 8 Apr 2015 14:23:18 +0300 Subject: [PATCH 3/3] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6fd3c69..c1e2066 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ Zip task (folders hierarchy maintained relative to InputBaseDirectory): OverwriteExistingFile="true" /> ``` -Zip task (folders hierarchy maintained relative to InputBaseDirectory): +ZipDir task (folders hierarchy maintained relative to InputBaseDirectory): ```xml