From 90ce2de5297b335383b6c17bf8c9fa52525f2661 Mon Sep 17 00:00:00 2001 From: crschnick Date: Wed, 8 Mar 2023 23:00:25 +0000 Subject: [PATCH] More elevation fixes --- .../main/java/io/xpipe/app/util/ScriptHelper.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/xpipe/app/util/ScriptHelper.java b/app/src/main/java/io/xpipe/app/util/ScriptHelper.java index 417ce0e0..41bb3850 100644 --- a/app/src/main/java/io/xpipe/app/util/ScriptHelper.java +++ b/app/src/main/java/io/xpipe/app/util/ScriptHelper.java @@ -206,8 +206,18 @@ public class ScriptHelper { return file; } - @SneakyThrows - public static String createAskPassScript(SecretValue pass, ShellControl parent, ShellDialect type) { + public static String createAskPassScript(SecretValue pass, ShellControl parent) throws Exception { + var scriptType = parent.getShellDialect(); + + // Fix for power shell as there are permission issues when executing a powershell askpass script + if (parent.getShellDialect().equals(ShellDialects.POWERSHELL)) { + scriptType = parent.getOsType().equals(OsType.WINDOWS) ? ShellDialects.CMD : ShellDialects.BASH; + } + + return createAskPassScript(pass, parent, scriptType); + } + + private static String createAskPassScript(SecretValue pass, ShellControl parent, ShellDialect type) throws Exception { var content = type.getScriptEchoCommand(pass.getSecretValue()); var temp = parent.getTemporaryDirectory(); var file = FileNames.join(temp, "askpass-" + getScriptId() + "." + type.getScriptFileEnding());