in src/main/scala/com/gu/ssm/utils/FilePermissions.scala [20:38]
def apply(file: File, perms: String): Unit = {
val posix = PosixFilePermissions fromString convert(perms)
val result = Try {
Files.setPosixFilePermissions(file.toPath, posix)
} recoverWith {
// in case of windows
case _: UnsupportedOperationException =>
Try {
file.setExecutable(perms contains PosixFilePermission.OWNER_EXECUTE)
file.setWritable(perms contains PosixFilePermission.OWNER_WRITE)
}
}
// propagate error
if (result.isFailure) {
val e = result.failed.get
sys.error("Error setting permissions " + perms + " on " + file.getAbsolutePath + ": " + e.getMessage)
}
}