fix: fish shell (#1950)

pull/1958/head
Aiden Cline 2025-08-15 06:11:09 -05:00 committed by GitHub
parent 6fbe28619c
commit 62fed8d2ce
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 15 additions and 7 deletions

View File

@ -1056,14 +1056,22 @@ export namespace Session {
}
await updatePart(part)
const app = App.info()
const script = `
[[ -f ~/.zshrc ]] && source ~/.zshrc >/dev/null 2>&1 || true
[[ -f ~/.bashrc ]] && source ~/.bashrc >/dev/null 2>&1 || true
eval "${input.command}"
`
const shell = process.env["SHELL"] ?? "bash"
const supportsLoginFlag = !shell.includes("fish") && !shell.includes("nu")
const args = supportsLoginFlag ? ["-c", "-l", script] : ["-c", script]
const shellName = path.basename(shell)
const scripts: Record<string, string> = {
nu: input.command,
fish: `eval "${input.command}"`,
}
const script =
scripts[shellName] ??
`[[ -f ~/.zshrc ]] && source ~/.zshrc >/dev/null 2>&1 || true
[[ -f ~/.bashrc ]] && source ~/.bashrc >/dev/null 2>&1 || true
eval "${input.command}"`
const isFishOrNu = shellName === "fish" || shellName === "nu"
const args = isFishOrNu ? ["-c", script] : ["-c", "-l", script]
const proc = spawn(shell, args, {
cwd: app.path.cwd,