Archived
The doctor "can find npm/pi" checks wrap the version command in a POSIX subshell, `(cmd --version 2>&1 || true)`. Fish treats `( ... )` as command substitution syntax and forbids it in command position, so every fish user saw false-negative failures: fish: command substitutions not allowed in command position command -v npm && (npm --version 2>&1 || true) Branch on the detected service shell and emit fish's `begin; ...; end` grouping for fish, mirroring the existing fish-aware quoting in serviceShellQuote. Bash and zsh keep the POSIX subshell. Also guard the `main()` invocation with an ESM main-module check so the CLI helpers can be imported by tests without side effects, and add a regression test covering the bash, zsh, and fish command shapes.
10 lines
427 B
Markdown
10 lines
427 B
Markdown
---
|
|
"@jmfederico/pi-web": patch
|
|
---
|
|
|
|
Fix `pi-web doctor` "can find npm/pi" checks on fish. The `--version` check
|
|
wrapped the version command in a POSIX subshell `(cmd --version 2>&1 || true)`,
|
|
which fish parses as a command substitution in command position and rejects
|
|
(`command substitutions not allowed in command position`), producing a false
|
|
negative. Emit fish's `begin; ...; end` grouping when the service shell is fish.
|