From: Vincent Vanwaelscappel Date: Wed, 19 Apr 2023 09:17:46 +0000 (+0200) Subject: wait #5867 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=e51cad296be8d2e1c8e15d0280d2984d0ef9bacb;p=cubist_util.git wait #5867 --- diff --git a/src/Zip.php b/src/Zip.php index 259715b..ba099df 100644 --- a/src/Zip.php +++ b/src/Zip.php @@ -55,22 +55,16 @@ class Zip * @param int $compression * @return CommandLine */ - public static function archive($source, $zip, $compression = 0) + public static function archive($source, $zip, $compression = 0, $keepSymbolicLinks = true) { $zipexe = 'zip'; $dir = dirname($zip); Files::mkdir($dir); - - if (!is_numeric($compression)) { - $compression = 0; - } - $compression = round($compression); - $compression = max(0, min(9, $compression)); - $cl = new CommandLine($zipexe); + $cl->setArg(max(0, min(9, round($compression)))); if (is_array($source)) { - $cl->setArg($compression); + $cl->setArg('j'); $cl->setArg(null, $zip); foreach ($source as $item) { @@ -86,6 +80,9 @@ class Zip $cl->setArg(null, $zip); $cl->setArg(null, '*'); } + if ($keepSymbolicLinks) { + $cl->setArg('symlinks'); + } $cl->execute(); return $cl; }