Skip to content

Commit 0fa2312

Browse files
committed
Fix(Task/Ext/Archive/ZipTask): Preseves directories' permissions in zip
Fix #1817 Stores directories's original permissions as `ZipArchive::OPSYS_UNIX` `ExternalAttribute`.
1 parent dc73953 commit 0fa2312

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

src/Phing/Task/Ext/Archive/ZipTask.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,9 @@ private function addFilesetsToArchive($zip)
306306
if ($f->isDirectory()) {
307307
if ($pathInZip != '.') {
308308
$zip->addEmptyDir($pathInZip);
309+
$dirAttrName = $pathInZip . '/';
310+
$dirAttrs = (int) fileperms($f->getPath()) << 16;
311+
$zip->setExternalAttributesName($dirAttrName, \ZipArchive::OPSYS_UNIX, $dirAttrs);
309312
}
310313
} else {
311314
$zip->addFile($f->getAbsolutePath(), $pathInZip);

0 commit comments

Comments
 (0)