fix: 修复定时任务环境变量缺失问题
This commit is contained in:
parent
367f840a6d
commit
f6fceee2b1
@ -4,7 +4,48 @@ set -euo pipefail
|
||||
PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
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 中"
|
||||
exit 1
|
||||
fi
|
||||
@ -20,8 +61,9 @@ if [[ ! -d .git ]]; then
|
||||
fi
|
||||
|
||||
echo "[INFO] 项目目录: $PROJECT_DIR"
|
||||
echo "[INFO] bun 路径: $BUN_CMD"
|
||||
echo "[INFO] 开始执行 daily 采集..."
|
||||
bun run daily
|
||||
"$BUN_CMD" run daily
|
||||
|
||||
echo "[INFO] 添加产物到暂存区..."
|
||||
git add data pic
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user