fix(shell): restore always-on PATH after macOS path_helper
path_helper runs after ~/.zshenv in login shells and puts Homebrew ahead of fnm, pyenv, and ~/.local/bin. Re-source ~/.zshenv from ~/.zprofile and make prepends idempotent so login and zsh -c resolve the same binaries.
This commit is contained in:
1 parent
82c6a57c3a
commit
34d11b5aa4
8 files changed
+198
-73
No files matched your search
+26
-6
@@ -1,10 +1,30 @@
|
||||
# fnm (Fast Node Manager) — always-on (sourced from ~/.zshenv)
|
||||
# fnm (Fast Node Manager) — always-on via ~/.zshenv
|
||||
FNM_PATH="${XDG_DATA_HOME:-$HOME/.local/share}/fnm"
|
||||
[[ -d "$FNM_PATH" ]] && export PATH="$FNM_PATH:$PATH"
|
||||
[[ -d "$FNM_PATH" ]] && path=("$FNM_PATH" ${path:#$FNM_PATH})
|
||||
|
||||
if command -v fnm &> /dev/null; then
|
||||
if [[ -o interactive ]]; then
|
||||
eval "$(fnm env --use-on-cd --shell zsh)"
|
||||
else
|
||||
eval "$(fnm env --shell zsh)"
|
||||
_easyzsh_fnm_state="${XDG_STATE_HOME:-$HOME/.local/state}/fnm_multishells"
|
||||
_easyzsh_fnm_ready=0
|
||||
if [[ -n "$FNM_MULTISHELL_PATH" && -d "$FNM_MULTISHELL_PATH/bin" ]] \
|
||||
&& [[ "$FNM_MULTISHELL_PATH" == "$_easyzsh_fnm_state/"* || "$FNM_MULTISHELL_PATH" == "$FNM_PATH/"* ]]; then
|
||||
if [[ ! -o interactive ]] || (( $+functions[_fnm_autoload_hook] )); then
|
||||
_easyzsh_fnm_ready=1
|
||||
fi
|
||||
fi
|
||||
if (( _easyzsh_fnm_ready )); then
|
||||
path=("$FNM_MULTISHELL_PATH/bin" ${path:#$FNM_MULTISHELL_PATH/bin})
|
||||
else
|
||||
_easyzsh_fnm_prev="$FNM_MULTISHELL_PATH"
|
||||
if [[ -o interactive ]]; then
|
||||
eval "$(fnm env --use-on-cd --shell zsh)"
|
||||
else
|
||||
eval "$(fnm env --shell zsh)"
|
||||
fi
|
||||
if [[ -n "$_easyzsh_fnm_prev" ]]; then
|
||||
path=(${path:#$_easyzsh_fnm_prev/bin})
|
||||
fi
|
||||
unset _easyzsh_fnm_prev
|
||||
fi
|
||||
unset _easyzsh_fnm_ready _easyzsh_fnm_state
|
||||
fi
|
||||
export PATH
|
||||
Reference in new issue
Block a user