projects
/
lgpl
/
argeo-commons.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use /tmp for run dir when home is not writable
[lgpl/argeo-commons.git]
/
org.argeo.cms
/
src
/
org
/
argeo
/
cms
/
util
/
OS.java
diff --git
a/org.argeo.cms/src/org/argeo/cms/util/OS.java
b/org.argeo.cms/src/org/argeo/cms/util/OS.java
index 56a5fdfd46d3691704ca15d886ba2ba6dec96a55..e72ad252a48d1de1b836e65560e74c3de782e578 100644
(file)
--- a/
org.argeo.cms/src/org/argeo/cms/util/OS.java
+++ b/
org.argeo.cms/src/org/argeo/cms/util/OS.java
@@
-1,6
+1,7
@@
package org.argeo.cms.util;
import java.io.File;
package org.argeo.cms.util;
import java.io.File;
+import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.Path;
import java.nio.file.Paths;
@@
-62,10
+63,15
@@
public class OS {
// TODO support multiple names
runDir = Paths.get(xdgRunDir);
} else {
// TODO support multiple names
runDir = Paths.get(xdgRunDir);
} else {
- if (System.getProperty("user.name").equals("root")) {
+ String username = System.getProperty("user.name");
+ if (username.equals("root")) {
runDir = Paths.get("/run");
} else {
runDir = Paths.get(System.getProperty("user.home"), ".cache/argeo");
runDir = Paths.get("/run");
} else {
runDir = Paths.get(System.getProperty("user.home"), ".cache/argeo");
+ if (!Files.isWritable(runDir)) {
+ // typically, dameon's home (/usr/sbin) is not writable
+ runDir = Paths.get("/tmp/" + username + "/run");
+ }
}
}
return runDir;
}
}
return runDir;