tuned;
authorwenzelm
Sun, 22 Jan 2017 13:58:26 +0100
changeset 64933 4c96995e20cb
parent 64932 89c0896a19ad
child 64934 795055a0be98
tuned;
src/Pure/Admin/build_jdk.scala
--- a/src/Pure/Admin/build_jdk.scala	Sun Jan 22 13:11:38 2017 +0100
+++ b/src/Pure/Admin/build_jdk.scala	Sun Jan 22 13:58:26 2017 +0100
@@ -7,6 +7,8 @@
 package isabelle
 
 
+import java.nio.file.Files
+
 import scala.util.matching.Regex
 
 
@@ -165,10 +167,20 @@
         for ((_, platform) <- extracted)
           File.move(dir + Path.explode(platform.name), component_dir)
 
-        Isabelle_System.bash(cwd = component_dir.file,
-          script = """
-            chmod -R a+r . &&
-            chmod -R a+X . """).check
+        for (file <- File.find_files(component_dir.file, include_dirs = true)) {
+          import java.nio.file.attribute.PosixFilePermission._
+          val path = file.toPath
+          val perms = Files.getPosixFilePermissions(path)
+          perms.add(OWNER_READ)
+          perms.add(GROUP_READ)
+          perms.add(OTHERS_READ)
+          if (file.isDirectory) {
+            perms.add(OWNER_EXECUTE)
+            perms.add(GROUP_EXECUTE)
+            perms.add(OTHERS_EXECUTE)
+          }
+          Files.setPosixFilePermissions(path, perms)
+        }
 
         File.find_files((component_dir + Path.explode("x86_64-darwin")).file,
           file => file.getName.startsWith("._")).foreach(_.delete)