diff --git a/deploy/manage.sh b/deploy/manage.sh index 40bd759..ec31f2b 100644 --- a/deploy/manage.sh +++ b/deploy/manage.sh @@ -53,6 +53,10 @@ repo_ready() { [[ -f "${1}/app/main.py" && -f "${1}/requirements.txt" && -f "${1}/deploy/manage.sh" ]] } +git_in_install() { + git -c safe.directory="${INSTALL_ROOT}" -C "${INSTALL_ROOT}" "$@" +} + require_root() { if [[ "$(id -u)" -ne 0 ]]; then echo "请使用 root 执行。可以先 sudo -i,再运行安装命令。" >&2 @@ -262,7 +266,11 @@ cmd_update() { log "更新程序" install_packages if [[ -d "${INSTALL_ROOT}/.git" ]]; then - git -C "${INSTALL_ROOT}" pull --ff-only origin "${GIT_BRANCH}" + if ! git_in_install diff --quiet -- web; then + log "控制台文件与仓库不一致,按仓库版本覆盖 web/" + git_in_install checkout -- web + fi + git_in_install pull --ff-only origin "${GIT_BRANCH}" else ensure_install_tree fi