more executable files;
authorwenzelm
Sat, 05 Mar 2022 14:31:29 +0100
changeset 75223 8c09e1f82f81
parent 75222 aef3926eb6ce
child 75224 419781ac89bf
more executable files; clarified modules;
src/Pure/Admin/build_vscodium.scala
src/Tools/VSCode/src/vscode_setup.scala
--- a/src/Pure/Admin/build_vscodium.scala	Sat Mar 05 14:24:33 2022 +0100
+++ b/src/Pure/Admin/build_vscodium.scala	Sat Mar 05 14:31:29 2022 +0100
@@ -9,6 +9,7 @@
 
 import java.security.MessageDigest
 import java.util.Base64
+import java.io.{File => JFile}
 
 
 object Build_VSCodium
@@ -114,7 +115,7 @@
 
   private def vscodium_exe(dir: Path): Path = dir + Path.explode("bin/codium")
 
-  private def macos_exe: String =
+  def macos_exe: String =
 """#!/usr/bin/env bash
 
 unset CDPATH
@@ -126,6 +127,12 @@
 exit $?
 """
 
+  def is_windows_exe(file: JFile): Boolean =
+  {
+    val name = file.getName
+    name.endsWith(".dll") || name.endsWith(".exe") || name.endsWith(".node")
+  }
+
   def build_vscodium(
     target_dir: Path = Path.current,
     platforms: List[Platform.Family.Value] = default_platforms,
@@ -185,9 +192,7 @@
             File.set_executable(exe, true)
           case Platform.Family.windows =>
             val files1 = File.find_files(exe.dir.file)
-            val files2 =
-              File.find_files(platform_dir.file,
-                pred = file => file.getName.endsWith(".exe") || file.getName.endsWith(".dll"))
+            val files2 = File.find_files(platform_dir.file, pred = is_windows_exe)
             for (file <- files1 ::: files2) File.set_executable(File.path(file), true)
             Isabelle_System.bash("chmod -R o-w " + File.bash_path(platform_dir))
           case _ =>
--- a/src/Tools/VSCode/src/vscode_setup.scala	Sat Mar 05 14:24:33 2022 +0100
+++ b/src/Tools/VSCode/src/vscode_setup.scala	Sat Mar 05 14:31:29 2022 +0100
@@ -115,18 +115,6 @@
   }
 """
 
-  private def macos_exe: String =
-"""#!/usr/bin/env bash
-
-unset CDPATH
-VSCODE_PATH="$(cd "$(dirname "$0")"/../VSCodium.app/Contents; pwd)"
-
-ELECTRON="$VSCODE_PATH/MacOS/Electron"
-CLI="$VSCODE_PATH/Resources/app/out/cli.js"
-ELECTRON_RUN_AS_NODE=1 "$ELECTRON" "$CLI" --ms-enable-electron-run-as-node "$@"
-exit $?
-"""
-
   def vscode_setup(
     check: Boolean = false,
     download_url: String = default_download_url,
@@ -197,13 +185,11 @@
           platform match {
             case Platform.Family.macos =>
               Isabelle_System.make_directory(exe.dir)
-              File.write(exe, macos_exe)
+              File.write(exe, Build_VSCodium.macos_exe)
               File.set_executable(exe, true)
             case Platform.Family.windows =>
               val files1 = File.find_files(exe.dir.file)
-              val files2 =
-                File.find_files(install_dir.file,
-                  pred = file => file.getName.endsWith(".exe") || file.getName.endsWith(".dll"))
+              val files2 = File.find_files(install_dir.file, pred = Build_VSCodium.is_windows_exe)
               for (file <- files1 ::: files2) File.set_executable(File.path(file), true)
             case _ =>
           }