mirror of
				https://github.com/shufflewzc/faker3.git
				synced 2025-10-31 09:22:00 +08:00 
			
		
		
		
	Update jd_indeps.sh
This commit is contained in:
		
							
								
								
									
										158
									
								
								jd_indeps.sh
									
									
									
									
									
								
							
							
						
						
									
										158
									
								
								jd_indeps.sh
									
									
									
									
									
								
							| @@ -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" | ||||
		Reference in New Issue
	
	Block a user