fix(shell-init): suppress cd output

If `cd` causes output on stdout (e.g., via the use of noisy `chpwd` hooks on
zsh), then the resultant `PATH` exported to the shell will be polluted with that
output, and `safe-chain` will not function.  To prevent this, this PR updates
`init-posix.sh` and `unix-wrapper.template.sh` to suppress any output on stdout
during `cd`.
This commit is contained in:
Alexandra Spillane 2026-04-28 14:34:28 +10:00 committed by Alexandra Spillane
parent 725f7c399d
commit 42fd25bd11
2 changed files with 2 additions and 2 deletions

View file

@ -4,7 +4,7 @@
# Function to remove shim from PATH (POSIX-compliant) # Function to remove shim from PATH (POSIX-compliant)
remove_shim_from_path() { remove_shim_from_path() {
_safe_chain_phys=$(CDPATH= cd -- "$(dirname -- "$0")" 2>/dev/null && pwd -P) _safe_chain_phys=$(CDPATH= cd -- "$(dirname -- "$0")" >/dev/null 2>/dev/null && pwd -P)
if [ -z "$_safe_chain_phys" ]; then if [ -z "$_safe_chain_phys" ]; then
echo "$PATH" echo "$PATH"
return return

View file

@ -7,7 +7,7 @@ elif [ -n "${ZSH_VERSION:-}" ]; then
else else
_sc_script_path="$0" _sc_script_path="$0"
fi fi
_sc_scripts_dir=$(CDPATH= cd -- "$(dirname -- "$_sc_script_path")" 2>/dev/null && pwd -P) _sc_scripts_dir=$(CDPATH= cd -- "$(dirname -- "$_sc_script_path")" >/dev/null 2>/dev/null && pwd -P)
_sc_base=$(dirname -- "$_sc_scripts_dir") _sc_base=$(dirname -- "$_sc_scripts_dir")
export PATH="$PATH:${_sc_base}/bin" export PATH="$PATH:${_sc_base}/bin"
unset _sc_base _sc_script_path _sc_scripts_dir unset _sc_base _sc_script_path _sc_scripts_dir