mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-05 23:47:41 +08:00
chore: update code logic optimization
This commit is contained in:
@@ -50,82 +50,86 @@ function download_and_unzip() {
|
|||||||
function install_backend_and_download_resources() {
|
function install_backend_and_download_resources() {
|
||||||
# 清理临时目录,上次安装失败可能有残留
|
# 清理临时目录,上次安装失败可能有残留
|
||||||
rm -rf /tmp/*
|
rm -rf /tmp/*
|
||||||
if download_and_unzip "${GITHUB_PROXY}https://github.com/jxxghp/MoviePilot/archive/refs/${1}" "App"; then
|
if ! download_and_unzip "${GITHUB_PROXY}https://github.com/jxxghp/MoviePilot/archive/refs/${1}" "App"; then
|
||||||
INFO "后端程序下载成功"
|
|
||||||
INFO "依赖安装中..."
|
|
||||||
pip install ${PIP_OPTIONS} --upgrade --root-user-action=ignore pip > /dev/null
|
|
||||||
if pip install ${PIP_OPTIONS} --root-user-action=ignore -r /tmp/App/requirements.txt > /dev/null; then
|
|
||||||
INFO "安装依赖成功"
|
|
||||||
frontend_version=$(curl ${CURL_OPTIONS} "https://api.github.com/repos/jxxghp/MoviePilot-Frontend/releases/latest" ${CURL_HEADERS} | jq -r .tag_name)
|
|
||||||
if [[ "${frontend_version}" == *v* ]]; then
|
|
||||||
if download_and_unzip "${GITHUB_PROXY}https://github.com/jxxghp/MoviePilot-Frontend/releases/download/${frontend_version}/dist.zip" "dist"; then
|
|
||||||
INFO "前端程序下载成功"
|
|
||||||
# 提前备份插件目录
|
|
||||||
INFO "备份插件目录中..."
|
|
||||||
rm -rf /plugins
|
|
||||||
mkdir -p /plugins
|
|
||||||
cp -a /app/app/plugins/* /plugins/
|
|
||||||
# 不备份__init__.py
|
|
||||||
rm -f /plugins/__init__.py
|
|
||||||
# 提前备份旧 resources 资源
|
|
||||||
INFO "备份 resources 资源中..."
|
|
||||||
rm -rf /resources_bakcup
|
|
||||||
mkdir /resources_bakcup
|
|
||||||
cp -a /app/app/helper/* /resources_bakcup
|
|
||||||
# 清空目录
|
|
||||||
rm -rf /app
|
|
||||||
mkdir -p /app
|
|
||||||
# 后端程序
|
|
||||||
cp -a /tmp/App/* /app/
|
|
||||||
# 前端程序
|
|
||||||
rm -rf /public
|
|
||||||
mkdir -p /public
|
|
||||||
cp -a /tmp/dist/* /public/
|
|
||||||
# 清理临时目录
|
|
||||||
rm -rf /tmp/*
|
|
||||||
INFO "程序部分更新成功,前端版本:${frontend_version},后端版本:${1}"
|
|
||||||
INFO "开始更新插件..."
|
|
||||||
if download_and_unzip "${GITHUB_PROXY}https://github.com/jxxghp/MoviePilot-Plugins/archive/refs/heads/main.zip" "Plugins"; then
|
|
||||||
INFO "插件下载成功"
|
|
||||||
# 恢复插件目录
|
|
||||||
cp -a /plugins/* /app/app/plugins/
|
|
||||||
# 插件仓库
|
|
||||||
rsync -av --remove-source-files /tmp/Plugins/plugins/* /app/app/plugins/ > /dev/null
|
|
||||||
# 提前安装插件依赖
|
|
||||||
find /app/app/plugins -name requirements.txt -exec pip install --root-user-action=ignore ${PIP_OPTIONS} -r {} \; > /dev/null
|
|
||||||
# 清理临时目录
|
|
||||||
rm -rf /tmp/*
|
|
||||||
INFO "插件更新成功"
|
|
||||||
INFO "开始更新资源包..."
|
|
||||||
if download_and_unzip "${GITHUB_PROXY}https://github.com/jxxghp/MoviePilot-Resources/archive/refs/heads/main.zip" "Resources"; then
|
|
||||||
INFO "资源包下载成功"
|
|
||||||
# 资源包
|
|
||||||
cp -a /tmp/Resources/resources/* /app/app/helper/
|
|
||||||
# 清理临时目录
|
|
||||||
rm -rf /tmp/*
|
|
||||||
INFO "资源包更新成功"
|
|
||||||
else
|
|
||||||
cp -a /resources_bakcup/* /app/app/helper/
|
|
||||||
rm -rf /resources_bakcup
|
|
||||||
WARN "资源包下载失败,继续使用旧的资源包来启动..."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
cp -a /plugins/* /app/app/plugins/
|
|
||||||
rm -rf /plugins
|
|
||||||
WARN "插件下载失败,继续使用旧的插件来启动..."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
WARN "前端程序下载失败,继续使用旧的程序来启动..."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
WARN "前端最新版本号获取失败,继续启动..."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
ERROR "安装依赖失败,请重新拉取镜像"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
WARN "后端程序下载失败,继续使用旧的程序来启动..."
|
WARN "后端程序下载失败,继续使用旧的程序来启动..."
|
||||||
|
return 1
|
||||||
fi
|
fi
|
||||||
|
INFO "后端程序下载成功"
|
||||||
|
INFO "依赖安装中..."
|
||||||
|
if ! pip install ${PIP_OPTIONS} --upgrade --root-user-action=ignore pip > /dev/null; then
|
||||||
|
ERROR "pip 更新失败,请重新拉取镜像"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
if ! pip install ${PIP_OPTIONS} --root-user-action=ignore -r /tmp/App/requirements.txt > /dev/null; then
|
||||||
|
ERROR "安装依赖失败,请重新拉取镜像"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
INFO "安装依赖成功"
|
||||||
|
frontend_version=$(curl ${CURL_OPTIONS} "https://api.github.com/repos/jxxghp/MoviePilot-Frontend/releases/latest" ${CURL_HEADERS} | jq -r .tag_name)
|
||||||
|
if [[ "${frontend_version}" != *v* ]]; then
|
||||||
|
WARN "前端最新版本号获取失败,继续启动..."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
if ! download_and_unzip "${GITHUB_PROXY}https://github.com/jxxghp/MoviePilot-Frontend/releases/download/${frontend_version}/dist.zip" "dist"; then
|
||||||
|
WARN "前端程序下载失败,继续使用旧的程序来启动..."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
INFO "前端程序下载成功"
|
||||||
|
# 提前备份插件目录
|
||||||
|
INFO "备份插件目录中..."
|
||||||
|
rm -rf /plugins
|
||||||
|
mkdir -p /plugins
|
||||||
|
cp -a /app/app/plugins/* /plugins/
|
||||||
|
# 不备份__init__.py
|
||||||
|
rm -f /plugins/__init__.py
|
||||||
|
# 提前备份旧 resources 资源
|
||||||
|
INFO "备份 resources 资源中..."
|
||||||
|
rm -rf /resources_bakcup
|
||||||
|
mkdir /resources_bakcup
|
||||||
|
cp -a /app/app/helper/* /resources_bakcup
|
||||||
|
# 清空目录
|
||||||
|
rm -rf /app
|
||||||
|
mkdir -p /app
|
||||||
|
# 后端程序
|
||||||
|
cp -a /tmp/App/* /app/
|
||||||
|
# 前端程序
|
||||||
|
rm -rf /public
|
||||||
|
mkdir -p /public
|
||||||
|
cp -a /tmp/dist/* /public/
|
||||||
|
# 清理临时目录
|
||||||
|
rm -rf /tmp/*
|
||||||
|
INFO "程序部分更新成功,前端版本:${frontend_version},后端版本:${1}"
|
||||||
|
INFO "开始更新插件..."
|
||||||
|
if ! download_and_unzip "${GITHUB_PROXY}https://github.com/jxxghp/MoviePilot-Plugins/archive/refs/heads/main.zip" "Plugins"; then
|
||||||
|
cp -a /plugins/* /app/app/plugins/
|
||||||
|
rm -rf /plugins
|
||||||
|
WARN "插件下载失败,继续使用旧的插件来启动..."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
INFO "插件下载成功"
|
||||||
|
# 恢复插件目录
|
||||||
|
cp -a /plugins/* /app/app/plugins/
|
||||||
|
# 插件仓库
|
||||||
|
rsync -av --remove-source-files /tmp/Plugins/plugins/* /app/app/plugins/ > /dev/null
|
||||||
|
# 提前安装插件依赖
|
||||||
|
find /app/app/plugins -name requirements.txt -exec pip install --root-user-action=ignore ${PIP_OPTIONS} -r {} \; > /dev/null
|
||||||
|
# 清理临时目录
|
||||||
|
rm -rf /tmp/*
|
||||||
|
INFO "插件更新成功"
|
||||||
|
INFO "开始更新资源包..."
|
||||||
|
if ! download_and_unzip "${GITHUB_PROXY}https://github.com/jxxghp/MoviePilot-Resources/archive/refs/heads/main.zip" "Resources"; then
|
||||||
|
cp -a /resources_bakcup/* /app/app/helper/
|
||||||
|
rm -rf /resources_bakcup
|
||||||
|
WARN "资源包下载失败,继续使用旧的资源包来启动..."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
INFO "资源包下载成功"
|
||||||
|
# 资源包
|
||||||
|
cp -a /tmp/Resources/resources/* /app/app/helper/
|
||||||
|
# 清理临时目录
|
||||||
|
rm -rf /tmp/*
|
||||||
|
INFO "资源包更新成功"
|
||||||
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
function test_connectivity_pip() {
|
function test_connectivity_pip() {
|
||||||
|
|||||||
Reference in New Issue
Block a user