From f6d1c2589407d435680e3eb9400e17b226de67ab Mon Sep 17 00:00:00 2001
From: Nico Alt <nicoalt@posteo.org>
Date: Tue, 28 Sep 2021 11:47:08 +0200
Subject: [PATCH] Don't use POSIX file permissions on Windows

Maybe we can just use the Windows method for everything.

Related to #31.
---
 .../org/briarproject/briar/desktop/Main.kt    | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/src/main/kotlin/org/briarproject/briar/desktop/Main.kt b/src/main/kotlin/org/briarproject/briar/desktop/Main.kt
index 1f3eff33da..1b836ee0d3 100644
--- a/src/main/kotlin/org/briarproject/briar/desktop/Main.kt
+++ b/src/main/kotlin/org/briarproject/briar/desktop/Main.kt
@@ -8,6 +8,9 @@ import com.github.ajalt.clikt.parameters.options.default
 import com.github.ajalt.clikt.parameters.options.flag
 import com.github.ajalt.clikt.parameters.options.option
 import org.briarproject.bramble.BrambleCoreEagerSingletons
+import org.briarproject.bramble.util.OsUtils.isLinux
+import org.briarproject.bramble.util.OsUtils.isMac
+import org.briarproject.bramble.util.OsUtils.isWindows
 import org.briarproject.briar.BriarCoreEagerSingletons
 import java.io.File
 import java.io.File.separator
@@ -74,11 +77,17 @@ private class Main : CliktCommand(
         } else if (!file.isDirectory) {
             throw IOException("Data dir is not a directory: ${file.absolutePath}")
         }
-        val perms = HashSet<PosixFilePermission>()
-        perms.add(OWNER_READ)
-        perms.add(OWNER_WRITE)
-        perms.add(OWNER_EXECUTE)
-        setPosixFilePermissions(file.toPath(), perms)
+        if (isLinux() || isMac()) {
+            val perms = HashSet<PosixFilePermission>()
+            perms.add(OWNER_READ)
+            perms.add(OWNER_WRITE)
+            perms.add(OWNER_EXECUTE)
+            setPosixFilePermissions(file.toPath(), perms)
+        } else if (isWindows()) {
+            file.setReadable(true, true)
+            file.setWritable(true, true)
+            file.setExecutable(true, true)
+        }
         return file
     }
 }
-- 
GitLab