Use interactive shell for running shell commands only if shell is bash or zsh (#4159)

- **PR Description**

Fix running shell commands with fish or nushell.

Fixes #4153.
This commit is contained in:
Stefan Haller 2025-01-10 00:26:35 +01:00 committed by GitHub
commit 2c321011db
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -6,16 +6,29 @@ package oscommands
import (
"os"
"runtime"
"strings"
)
func GetPlatform() *Platform {
shell := getUserShell()
interactiveShell := shell
interactiveShellArg := "-i"
interactiveShellExit := "; exit $?"
if !(strings.HasSuffix(shell, "bash") || strings.HasSuffix(shell, "zsh")) {
interactiveShell = "bash"
interactiveShellArg = ""
interactiveShellExit = ""
}
return &Platform{
OS: runtime.GOOS,
Shell: "bash",
InteractiveShell: getUserShell(),
InteractiveShell: interactiveShell,
ShellArg: "-c",
InteractiveShellArg: "-i",
InteractiveShellExit: "; exit $?",
InteractiveShellArg: interactiveShellArg,
InteractiveShellExit: interactiveShellExit,
OpenCommand: "open {{filename}}",
OpenLinkCommand: "open {{link}}",
}