fix(githooks): use simple NVM loading (same as .bashrc)
Replace complex pnpm-finding fallback with the same NVM loading syntax used in ~/.bashrc. Removes the multiple candidate-path fallback loop in favor of a clean shell snippet.
This commit is contained in:
+5
-21
@@ -37,27 +37,11 @@ else
|
||||
fi
|
||||
cd "$REPO_TOPLEVEL" || { echo "FATAL: cannot cd to $REPO_TOPLEVEL" >&2; exit 1; }
|
||||
|
||||
# 加**载** nvm(**非**交互 shell **不**自动 source .bashrc)
|
||||
# nvm 是 POSIX **兼**容,但**有**个**问**题:它**会** [ -n "$BASH_VERSION" ] **检**查,
|
||||
# 在 dash **下** nvm 函**数**注**册**失败(pnpm **仍**然**找**不**到**)。
|
||||
# 所以策略是:尝**试** source nvm,**如**果失**败**则**直**接**找** pnpm **可执**行文件路径。
|
||||
PNPM_BIN="$(command -v pnpm 2>/dev/null || true)"
|
||||
if [ -z "$PNPM_BIN" ] && [ -s "$HOME/.nvm/nvm.sh" ]; then
|
||||
\. "$HOME/.nvm/nvm.sh" 2>/dev/null || true
|
||||
PNPM_BIN="$(command -v pnpm 2>/dev/null || true)"
|
||||
fi
|
||||
# 兜底:**直**接**搜**索 **常**见 nvm 路**径**
|
||||
if [ -z "$PNPM_BIN" ]; then
|
||||
for candidate in /root/.nvm/versions/node/*/bin/pnpm "$HOME/.local/share/pnpm/pnpm" /usr/local/bin/pnpm; do
|
||||
if [ -x "$candidate" ]; then
|
||||
PNPM_BIN="$candidate"
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if [ -n "$PNPM_BIN" ]; then
|
||||
export PATH="$(dirname "$PNPM_BIN"):$PATH"
|
||||
fi
|
||||
# 加**载** nvm(**非**交互 shell **不**自动 source .bashrc,pnpm **所**以**找**不**到**)
|
||||
# 同 .bashrc **里**的 NVM **加**载逻辑
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
||||
|
||||
# ============================================================
|
||||
# 1. init_log_file —— 定**义** LOG_FILE + 创**建** logs/ 目**录**
|
||||
|
||||
Reference in New Issue
Block a user