summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Zeiger <szeiger@novocode.com>2016-01-21 18:00:08 +0100
committerStefan Zeiger <szeiger@novocode.com>2016-01-25 17:26:44 +0100
commitbdd3abc1b96e4d2e658fb4fdf2bb8fd09d686a70 (patch)
tree767cbd05123a325c5185c1d5feb8e9dea6c01345
parent842ae5a78e4d9675c6bfb53c5cd4d52026d37bef (diff)
downloadscala-bdd3abc1b96e4d2e658fb4fdf2bb8fd09d686a70.tar.gz
scala-bdd3abc1b96e4d2e658fb4fdf2bb8fd09d686a70.tar.bz2
scala-bdd3abc1b96e4d2e658fb4fdf2bb8fd09d686a70.zip
Use portable Java APIs instead of calling chmod from sbt
Instead of waiting for a Java-8-only build to use `Files.setPosixPermissions()` we can call `setExecutable` and `setReadable`, both of which are available on Java 6.
-rw-r--r--build.sbt7
1 files changed, 4 insertions, 3 deletions
diff --git a/build.sbt b/build.sbt
index 6f82d78413..ad9d5c8866 100644
--- a/build.sbt
+++ b/build.sbt
@@ -767,9 +767,10 @@ lazy val mkBinImpl: Def.Initialize[Task[Seq[File]]] = Def.task {
scalaTool.writeScript(file, "windows", rootDir, outDir)
)
res.foreach { f =>
- //TODO 2.12: Use Files.setPosixFilePermissions() (Java 7+) instead of calling out to chmod
- if(Process(List("chmod", "ugo+rx", f.getAbsolutePath())).! > 0)
- throw new IOException("chmod failed")
+ if(!f.getAbsoluteFile.setExecutable(true, /* ownerOnly: */ false))
+ throw new IOException("setExecutable failed")
+ if(!f.getAbsoluteFile.setReadable(true, /* ownerOnly: */ false))
+ throw new IOException("setReadable failed")
}
res
}