recover platform-specific node binaries from original download, notably for node-pty for Terminal;
authorwenzelm
Sat, 05 Mar 2022 21:52:21 +0100
changeset 75228 33fb3014876f
parent 75227 02e596048ab3
child 75229 075467e070ba
recover platform-specific node binaries from original download, notably for node-pty for Terminal;
src/Pure/Admin/build_vscodium.scala
--- a/src/Pure/Admin/build_vscodium.scala	Sat Mar 05 21:30:49 2022 +0100
+++ b/src/Pure/Admin/build_vscodium.scala	Sat Mar 05 21:52:21 2022 +0100
@@ -94,6 +94,19 @@
       }
     }
 
+    def node_binaries(dir: Path, progress: Progress): Unit =
+    {
+      Isabelle_System.with_tmp_dir("download")(download_dir =>
+      {
+        download(download_dir, progress = progress)
+        for (name <- Seq("app/node_modules.asar", "app/node_modules.asar.unpacked")) {
+          val rel_path = resources_dir(Path.current) + Path.explode(name)
+          Isabelle_System.rm_tree(dir + rel_path)
+          Isabelle_System.copy_dir(download_dir + rel_path, dir + rel_path)
+        }
+      })
+    }
+
     def setup_executables(dir: Path): Unit =
     {
       val exe = vscodium_exe(dir)
@@ -232,6 +245,7 @@
 
         val platform_dir = platform_info.platform_dir(component_dir)
         Isabelle_System.copy_dir(platform_info.build_dir(vscodium_dir), platform_dir)
+        platform_info.node_binaries(platform_dir, progress)
         platform_info.patch_resources(platform_dir)
         platform_info.setup_executables(platform_dir)
       })