fix: 修复定时任务环境变量缺失问题

This commit is contained in:
李岩岩 2026-04-07 16:07:52 +08:00
parent 367f840a6d
commit f6fceee2b1

View File

@ -4,7 +4,48 @@ set -euo pipefail
PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)" PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"
cd "$PROJECT_DIR" cd "$PROJECT_DIR"
if ! command -v bun >/dev/null 2>&1; then # Cron 默认 PATH 往往很短,先补一份基础路径。
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${PATH:-}"
resolve_bun() {
# 1) PATH 可直接找到 bun
if command -v bun >/dev/null 2>&1; then
command -v bun
return 0
fi
# 2) 允许外部显式指定 BUN_BIN
if [[ -n "${BUN_BIN:-}" && -x "${BUN_BIN}" ]]; then
echo "${BUN_BIN}"
return 0
fi
# 3) 尝试加载 nvm 环境root 与普通用户路径)
local nvm_candidates=("/root/.nvm/nvm.sh" "${HOME:-}/.nvm/nvm.sh")
local nvm_sh
for nvm_sh in "${nvm_candidates[@]}"; do
if [[ -s "${nvm_sh}" ]]; then
# shellcheck source=/dev/null
source "${nvm_sh}" >/dev/null 2>&1 || true
if command -v bun >/dev/null 2>&1; then
command -v bun
return 0
fi
fi
done
# 4) 直接扫描 nvm 目录中的 bun优先版本号最高的 Node 目录
local bun_candidates
bun_candidates=$(find /root/.nvm/versions/node "${HOME:-}/.nvm/versions/node" -type f -path "*/bin/bun" 2>/dev/null | sort -V || true)
if [[ -n "${bun_candidates}" ]]; then
echo "${bun_candidates}" | tail -n 1
return 0
fi
return 1
}
if ! BUN_CMD="$(resolve_bun)"; then
echo "[ERROR] bun 未安装或不在 PATH 中" echo "[ERROR] bun 未安装或不在 PATH 中"
exit 1 exit 1
fi fi
@ -20,8 +61,9 @@ if [[ ! -d .git ]]; then
fi fi
echo "[INFO] 项目目录: $PROJECT_DIR" echo "[INFO] 项目目录: $PROJECT_DIR"
echo "[INFO] bun 路径: $BUN_CMD"
echo "[INFO] 开始执行 daily 采集..." echo "[INFO] 开始执行 daily 采集..."
bun run daily "$BUN_CMD" run daily
echo "[INFO] 添加产物到暂存区..." echo "[INFO] 添加产物到暂存区..."
git add data pic git add data pic