]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/util/IOUtils.java
Bump version 0.6.1
[signal-cli] / src / main / java / org / asamk / signal / util / IOUtils.java
index 69128d015534eeabb29b33704b9ee7029f326581..e1464b1c603997318cc21de696ad096ca64f50af 100644 (file)
@@ -33,13 +33,18 @@ public class IOUtils {
         return output.toString();
     }
 
-    public static void createPrivateDirectories(String path) throws IOException {
-        final Path file = new File(path).toPath();
+    public static void createPrivateDirectories(String directoryPath) throws IOException {
+        final File file = new File(directoryPath);
+        if (file.exists()) {
+            return;
+        }
+
+        final Path path = file.toPath();
         try {
             Set<PosixFilePermission> perms = EnumSet.of(OWNER_READ, OWNER_WRITE, OWNER_EXECUTE);
-            Files.createDirectories(file, PosixFilePermissions.asFileAttribute(perms));
+            Files.createDirectories(path, PosixFilePermissions.asFileAttribute(perms));
         } catch (UnsupportedOperationException e) {
-            Files.createDirectories(file);
+            Files.createDirectories(path);
         }
     }
 
@@ -52,4 +57,13 @@ public class IOUtils {
             Files.createFile(file);
         }
     }
+
+    public static String getDataHomeDir() {
+        String dataHome = System.getenv("XDG_DATA_HOME");
+        if (dataHome != null) {
+            return dataHome;
+        }
+
+        return System.getProperty("user.home") + "/.local/share";
+    }
 }