]> _ Git - fluidbook_tools.git/commitdiff
wip #4793 @0.25
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 15 Oct 2021 07:42:24 +0000 (09:42 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 15 Oct 2021 07:42:24 +0000 (09:42 +0200)
src/Compiler/Compiler.php

index ea92527a97cd35c0168c0bb70480920292eaa85f..bc78d8b2f4cc01c42a878fc6b1a4a7e91949272a 100644 (file)
@@ -5,6 +5,7 @@ namespace Fluidbook\Tools\Compiler;
 use Cubist\Util\Files\Files;
 use Cubist\Util\Files\VirtualDirectory;
 use Cubist\Util\PHP;
+use Cubist\Util\Zip;
 use Exception;
 use Fluidbook\Tools\Jobs\ProcessFile;
 use Fluidbook\Tools\Jobs\ProcessPage;
@@ -19,6 +20,7 @@ use Illuminate\Queue\Jobs\SyncJob;
 use Illuminate\Queue\SerializesModels;
 use JsonException;
 use stdClass;
+use ZipStream\File;
 
 class Compiler implements ShouldQueue, ShouldBeUnique
 {
@@ -262,6 +264,24 @@ class Compiler implements ShouldQueue, ShouldBeUnique
         }
     }
 
+    public function unzipFile($file, $moveAssets = false, $baseDir = null)
+    {
+        $fdir = is_null($baseDir) ? 'data/links/' . str_replace('.', '_', $file) : $baseDir;
+
+        $tmp = Files::tmpdir();
+        $dir = $tmp . '/' . $fdir;
+        Files::mkdir($dir);
+
+        Zip::extract($this->wdir . '/' . $file, $dir);
+
+        if ($moveAssets) {
+            `mv $dir/Assets/* $dir`;
+            rmdir($dir . '/Assets');
+        }
+
+        return array('dir' => $dir, 'fdir' => $fdir);
+    }
+
     protected function compilePageNumbers()
     {