mirror of
https://github.com/xpipe-io/xpipe.git
synced 2024-11-25 09:00:26 +00:00
More temporary directory fixes
This commit is contained in:
parent
442f8f7324
commit
b171dd099c
5 changed files with 17 additions and 11 deletions
|
@ -42,7 +42,7 @@ public class AppInstaller {
|
|||
targetFile = localFile.toString();
|
||||
} else {
|
||||
targetFile = FileNames.join(
|
||||
s.getTemporaryDirectory(), localFile.getFileName().toString());
|
||||
s.getSubTemporaryDirectory(), localFile.getFileName().toString());
|
||||
try (InputStream in = Files.newInputStream(localFile)) {
|
||||
in.transferTo(s.getShellDialect().createStreamFileWriteCommand(s, targetFile).startExternalStdin());
|
||||
}
|
||||
|
|
|
@ -10,7 +10,6 @@ import io.xpipe.core.process.ShellDialects;
|
|||
import io.xpipe.core.util.SecretValue;
|
||||
import lombok.SneakyThrows;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
|
@ -84,7 +83,7 @@ public class ScriptHelper {
|
|||
@SneakyThrows
|
||||
public static String getExecScriptFile(ShellControl processControl, String fileEnding) {
|
||||
var fileName = "exec-" + getScriptId();
|
||||
var temp = processControl.getTemporaryDirectory();
|
||||
var temp = processControl.getSubTemporaryDirectory();
|
||||
var file = FileNames.join(temp, fileName + "." + fileEnding);
|
||||
return file;
|
||||
}
|
||||
|
@ -93,7 +92,7 @@ public class ScriptHelper {
|
|||
public static String createExecScript(ShellControl processControl, String content) {
|
||||
var fileName = "exec-" + getScriptId();
|
||||
ShellDialect type = processControl.getShellDialect();
|
||||
var temp = processControl.getTemporaryDirectory();
|
||||
var temp = processControl.getSubTemporaryDirectory();
|
||||
var file = FileNames.join(temp, fileName + "." + type.getScriptFileEnding());
|
||||
return createExecScript(processControl, file, content);
|
||||
}
|
||||
|
@ -122,6 +121,11 @@ public class ScriptHelper {
|
|||
|
||||
public static String createAskPassScript(SecretValue pass, ShellControl parent, boolean forceExecutable)
|
||||
throws Exception {
|
||||
return createAskPassScript(pass != null ? List.of(pass) : List.of(), parent, forceExecutable);
|
||||
}
|
||||
|
||||
public static String createAskPassScript(List<SecretValue> pass, ShellControl parent, boolean forceExecutable)
|
||||
throws Exception {
|
||||
var scriptType = parent.getShellDialect();
|
||||
|
||||
// Fix for powershell as there are permission issues when executing a powershell askpass script
|
||||
|
@ -132,23 +136,23 @@ public class ScriptHelper {
|
|||
return createAskPassScript(pass, parent, scriptType);
|
||||
}
|
||||
|
||||
private static String createAskPassScript(SecretValue pass, ShellControl parent, ShellDialect type)
|
||||
private static String createAskPassScript(List<SecretValue> pass, ShellControl parent, ShellDialect type)
|
||||
throws Exception {
|
||||
var fileName = "askpass-" + getScriptId() + "." + type.getScriptFileEnding();
|
||||
var temp = parent.getTemporaryDirectory();
|
||||
var temp = parent.getSubTemporaryDirectory();
|
||||
var file = FileNames.join(temp, fileName);
|
||||
if (type != parent.getShellDialect()) {
|
||||
try (var sub = parent.subShell(type).start()) {
|
||||
var content = sub.getShellDialect()
|
||||
.prepareAskpassContent(
|
||||
sub, file, pass != null ? Collections.singletonList(pass.getSecretValue()) : List.of());
|
||||
sub, file, pass.stream().map(secretValue -> secretValue.getSecretValue()).toList());
|
||||
var exec = createExecScript(sub, file, content);
|
||||
return exec;
|
||||
}
|
||||
} else {
|
||||
var content = parent.getShellDialect()
|
||||
.prepareAskpassContent(
|
||||
parent, file, pass != null ? Collections.singletonList(pass.getSecretValue()) : List.of());
|
||||
parent, file, pass.stream().map(secretValue -> secretValue.getSecretValue()).toList());
|
||||
var exec = createExecScript(parent, file, content);
|
||||
return exec;
|
||||
}
|
||||
|
|
|
@ -33,7 +33,9 @@ public interface ShellControl extends ProcessControl {
|
|||
|
||||
String prepareIntermediateTerminalOpen(String content, String displayName) throws Exception;
|
||||
|
||||
String getTemporaryDirectory() throws Exception;
|
||||
String getSystemTemporaryDirectory();
|
||||
|
||||
String getSubTemporaryDirectory();
|
||||
|
||||
public void checkRunning() throws Exception;
|
||||
|
||||
|
|
|
@ -110,7 +110,7 @@ public interface ShellDialect {
|
|||
|
||||
String prepareTerminalInitFileOpenCommand(ShellDialect parentDialect, ShellControl sc, String file) throws Exception;
|
||||
|
||||
String runScript(String file);
|
||||
String runScript(ShellControl parent, String file);
|
||||
|
||||
String sourceScript(String file);
|
||||
|
||||
|
|
|
@ -61,6 +61,6 @@ public class RunAction extends MultiExecuteAction {
|
|||
|
||||
@Override
|
||||
protected String createCommand(ShellControl sc, OpenFileSystemModel model, BrowserEntry entry) {
|
||||
return sc.getShellDialect().runScript(entry.getFileName());
|
||||
return sc.getShellDialect().runScript(sc, entry.getFileName());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue