fix(core): spawn shell non-interactively without sourcing rc files
ShellSelect.args() ran zsh/bash with -l and explicitly sourced .zshrc/.bashrc, loading user functions and aliases that can shadow builtins and return non-zero exit codes, breaking && chains. Match the old tool behavior: plain non-login non-interactive shell -c command with cwd passed via spawn options.
This commit is contained in:
parent
381d67572e
commit
01edae4a7f
4 changed files with 8 additions and 37 deletions
|
|
@ -55,12 +55,10 @@ describe("shell", () => {
|
|||
})
|
||||
|
||||
test("builds command args per shell family", () => {
|
||||
expect(ShellSelect.args("/bin/sh", "echo hi", "/tmp")).toEqual(["-c", "echo hi"])
|
||||
expect(ShellSelect.args("/usr/bin/fish", "echo hi", "/tmp")).toEqual(["-c", "echo hi"])
|
||||
const zsh = ShellSelect.args("/bin/zsh", "echo hi", "/tmp")
|
||||
expect(zsh[0]).toBe("-l")
|
||||
expect(zsh[1]).toBe("-c")
|
||||
expect(zsh.at(-1)).toBe("/tmp")
|
||||
expect(ShellSelect.args("/bin/sh", "echo hi")).toEqual(["-c", "echo hi"])
|
||||
expect(ShellSelect.args("/usr/bin/fish", "echo hi")).toEqual(["-c", "echo hi"])
|
||||
expect(ShellSelect.args("/bin/zsh", "echo hi")).toEqual(["-c", "echo hi"])
|
||||
expect(ShellSelect.args("/bin/bash", "echo hi")).toEqual(["-c", "echo hi"])
|
||||
})
|
||||
|
||||
if (process.platform === "win32") {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue