From d1216811c8de05e157fac9e5c193fbf47c7878f3 Mon Sep 17 00:00:00 2001 From: crschnick Date: Tue, 11 Jul 2023 05:10:49 +0000 Subject: [PATCH] Check tempory directory permissions [stage] --- .../xpipe/core/util/XPipeExecTempDirectory.java | 15 ++++++++++++--- version | 2 +- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/io/xpipe/core/util/XPipeExecTempDirectory.java b/core/src/main/java/io/xpipe/core/util/XPipeExecTempDirectory.java index 26973da1..7611de05 100644 --- a/core/src/main/java/io/xpipe/core/util/XPipeExecTempDirectory.java +++ b/core/src/main/java/io/xpipe/core/util/XPipeExecTempDirectory.java @@ -1,6 +1,7 @@ package io.xpipe.core.util; import io.xpipe.core.impl.FileNames; +import io.xpipe.core.process.OsType; import io.xpipe.core.process.ShellControl; import java.util.Arrays; @@ -22,17 +23,25 @@ public class XPipeExecTempDirectory { var arr = Stream.of(base, "xpipe", "exec").toArray(String[]::new); var dir = FileNames.join(arr); + var d = proc.getShellDialect(); + if (proc.getOsType() == OsType.LINUX + && !proc.executeSimpleBooleanCommand("test -r %s && test -w %s && test -x %s" + .formatted(d.fileArgument(base), d.fileArgument(base), d.fileArgument(base)))) { + dir = FileNames.join(Stream.of(proc.getOsType().getHomeDirectory(proc), "xpipe", "exec") + .toArray(String[]::new)); + } + // We don't want to modify the temp directory if it is possibly in use if (usedSystems.contains(proc.getSystemId())) { return dir; } - var existsCommand = proc.getShellDialect().directoryExists(proc, dir); + var existsCommand = d.directoryExists(proc, dir); if (existsCommand.executeAndCheck() && !usedSystems.contains(proc.getSystemId())) { - proc.executeSimpleCommand(proc.getShellDialect().getFileDeleteCommand(dir)); + proc.executeSimpleCommand(d.getFileDeleteCommand(dir)); } - proc.getShellDialect().prepareTempDirectory(proc, dir).execute(); + d.prepareTempDirectory(proc, dir).execute(); usedSystems.add(proc.getSystemId()); return dir; diff --git a/version b/version index 6261a05b..d5e98f72 100644 --- a/version +++ b/version @@ -1 +1 @@ -1.3.1 \ No newline at end of file +1.3.2 \ No newline at end of file