def apply()

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)
    }
  }