Update jd_indeps.sh

This commit is contained in:
admin 2025-03-04 21:59:12 +08:00
parent 87e0060e9f
commit b834f7a736

View File

@ -1,64 +1,116 @@
#!/usr/bin/env bash
#依赖安装
#0 8 5 5 * jd_indeps.sh
#new Env('依赖安装');
#updatedate:20240903
#
# 依赖安装脚本
# 0 8 5 5 * jd_indeps.sh
# new Env('依赖安装');
# updatedate:20240903
DIR="$( pwd )"
dir_root=/ql
dir_repo=$dir_root/repo
dir_deps=$dir_root/deps
set -euo pipefail # 启用严格错误检查
if [[ $AUTOCFG == 'true' ]];then
if [[ -z "$(echo "$DIR"|grep 'main')" ]];then
dir_code=$dir_log/6dylan6_jdpro_jd_sharecode
repo='6dylan6_jdpro'
else
dir_code=$dir_log/6dylan6_jdpro_main_jd_sharecode
repo='6dylan6_jdpro_main'
fi
[[ -d $dir_root/data ]] && dir_data=$dir_root/data
[[ -d $dir_data/repo ]] && dir_repo=$dir_data/repo
[[ -d $dir_data/deps ]] && dir_deps=$dir_data/deps
cp $dir_repo/${repo}/sendNotify.js $dir_deps/ > /dev/null 2>&1
echo -e "\n已配置sendNotify.js文件到deps目录下再次执行订阅生效\n"
# 动态获取青龙根目录
if [ -d "/ql/data" ]; then
dir_root="/ql/data"
else
echo -e "\n如需自动配置sendNotify.js文件到desp目录下请配置变量AUTOCFG='true'\n"
dir_root="/ql"
fi
npm_ver=`pnpm -v|awk -F. '{print $1}'`
if [[ $npm_ver -ge 7 ]];then
dir_repo="$dir_root/repo"
dir_deps="$dir_root/deps"
dir_log="$dir_root/log"
# 自动配置 sendNotify.js
if [[ "${AUTOCFG:-}" == 'true' ]]; then
if [[ -z "$(pwd | grep 'main')" ]]; then
dir_code="$dir_log/shufflewzc_faker3_jd_sharecode"
repo='shufflewzc_faker3'
else
dir_code="$dir_log/shufflewzc_faker3_main_jd_sharecode"
repo='shufflewzc_faker3_main'
fi
[[ -d "$dir_root/data" ]] && dir_data="$dir_root/data"
[[ -d "$dir_data/repo" ]] && dir_repo="$dir_data/repo"
[[ -d "$dir_data/deps" ]] && dir_deps="$dir_data/deps"
if [ -f "$dir_repo/${repo}/sendNotify.js" ]; then
cp "$dir_repo/${repo}/sendNotify.js" "$dir_deps/"
echo -e "\n已配置 sendNotify.js 到 deps 目录\n"
else
echo -e "\n错误未找到 sendNotify.js 文件!\n"
exit 1
fi
else
echo -e "\n提示如需自动配置 sendNotify.js请设置变量 AUTOCFG='true'\n"
fi
# 检查权限
if [ "$EUID" -ne 0 ]; then
SUDO="sudo"
else
SUDO=""
fi
# 配置 pnpm 镜像
pnpm config set registry https://registry.npmmirror.com
# 处理 pnpm v7+ 环境变量
npm_ver=$(pnpm -v | awk -F. '{print $1}')
if [[ $npm_ver -ge 7 ]]; then
export PNPM_HOME="/root/.local/share/pnpm"
export PATH="$PNPM_HOME:$PATH"
fi
echo -e "安装本库所需依赖,不一定一次全部安装成功,完成请检查\n"
echo -e "开始安装............\n"
echo -e "\n开始检查依赖列表并安装依赖...\n"
#apk add g++ make pixman-dev pango-dev cairo-dev pkgconf --no-cache
#apk add g++ make --no-cache
pnpm config set registry https://registry.npmmirror.com
pnpm install -g
pnpm i -g tough-cookie
pnpm i -g ds@2.0.2
pnpm i -g png-js@1.0.0
pnpm i -g date-fns@3.6.0
pnpm i -g axios@1.7.4
pnpm i -g crypto-js@4.2.0
# pnpm install -g ts-md5@1.3.1
# pnpm install -g tslib@2.6.3
# pnpm install -g @types/node@22.4.0
pnpm i -g request@2.88.2
pnpm i -g jsdom@24.1.1
pnpm i -g moment@2.30.1
pnpm i -g cheerio@1.0.0
pnpm i -g tunnel
# pnpm install -g tough-cookie@4.1.4
pnpm i -g https-proxy-agent@7.0.5
pip3 install -i https://pypi.doubanio.com/simple/ jieba
pip3 install -i https://pypi.doubanio.com/simple/ requests
rm -rf /usr/local/pnpm-global/5/node_modules/.pnpm/canvas*
rm -rf /root/.local/share/pnpm/global/5/.pnpm/canvas*
pnpm i -g sharp@0.32.0
echo -e "\n所需依赖安装完成请检查有没有报错可尝试再次运行"
# 目标依赖列表
declare -A target_deps=(
["tough-cookie"]="4.1.4"
["ds"]="2.0.2"
["png-js"]="1.0.0"
["date-fns"]="3.6.0"
["axios"]="1.7.4"
["crypto-js"]="4.2.0"
["request"]="2.88.2"
["jsdom"]="24.1.1"
["moment"]="2.30.1"
["cheerio"]="1.0.0"
["tunnel"]="latest"
["https-proxy-agent"]="7.0.5"
["sharp"]="0.32.0"
["qs"]="6.11.0"
)
# 获取已安装的全局依赖
installed_deps=$(pnpm list -g --depth=0 --parseable 2>/dev/null | awk -F@ '{print $1, $2}')
# 安装或更新依赖
for dep in "${!target_deps[@]}"; do
target_version="${target_deps[$dep]}"
installed_version=$(echo "$installed_deps" | awk -v dep="$dep" '$1 == dep {print $2}')
if [[ -z "$installed_version" ]]; then
echo "正在安装 $dep@$target_version ..."
pnpm i -g "$dep@$target_version" || { echo "安装 $dep@$target_version 失败!"; exit 1; }
elif [[ "$installed_version" != "$target_version" ]]; then
echo "正在更新 $dep ($installed_version -> $target_version) ..."
pnpm i -g "$dep@$target_version" || { echo "更新 $dep@$target_version 失败!"; exit 1; }
else
echo "$dep@$installed_version 已是最新版本,跳过安装。"
fi
done
# 安装 Python 依赖
pip3 install -i https://pypi.doubanio.com/simple/ --upgrade jieba requests
# 清理 canvas 冲突文件
canvas_paths=(
"/usr/local/pnpm-global/5/node_modules/.pnpm/canvas*"
"/root/.local/share/pnpm/global/5/.pnpm/canvas*"
)
for path in "${canvas_paths[@]}"; do
if [ -d "$path" ]; then
rm -rf "$path"
fi
done
echo -e "\n依赖检查与安装完成请检查是否有报错。\n"