From fa777fa1958f22ae821f0800d15a6b47b842ccf8 Mon Sep 17 00:00:00 2001 From: john Date: Tue, 21 Jul 2026 18:37:49 +0800 Subject: [PATCH] fix: preserve MindSpace runtime data during release --- scripts/release-mindspace-service-prod.sh | 24 +++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/scripts/release-mindspace-service-prod.sh b/scripts/release-mindspace-service-prod.sh index 0598480..1fedbdb 100644 --- a/scripts/release-mindspace-service-prod.sh +++ b/scripts/release-mindspace-service-prod.sh @@ -196,6 +196,8 @@ SERVICE_STARTED=0 PORTAL_TOUCHED=0 APP_MOVED=0 HAD_OLD_APP=0 +PERSISTED_DATA_MOVED=0 +PERSISTED_USERS_MOVED=0 say() { printf '\n[remote %s] %s\n' "$(date +%H:%M:%S)" "$*" @@ -217,6 +219,16 @@ rollback() { rm -f "${SERVICE_PLIST}" fi if [[ "${APP_MOVED}" == "1" ]]; then + if [[ "${HAD_OLD_APP}" == "1" ]]; then + if [[ "${PERSISTED_DATA_MOVED}" == "1" && ( -e "${APP_DIR}/data" || -L "${APP_DIR}/data" ) ]]; then + rm -rf "${OLD_APP_ARCHIVE}/data" + mv "${APP_DIR}/data" "${OLD_APP_ARCHIVE}/data" + fi + if [[ "${PERSISTED_USERS_MOVED}" == "1" && ( -e "${APP_DIR}/users" || -L "${APP_DIR}/users" ) ]]; then + rm -rf "${OLD_APP_ARCHIVE}/users" + mv "${APP_DIR}/users" "${OLD_APP_ARCHIVE}/users" + fi + fi rm -rf "${APP_DIR}" if [[ "${HAD_OLD_APP}" == "1" && -d "${OLD_APP_ARCHIVE}" ]]; then mv "${OLD_APP_ARCHIVE}" "${APP_DIR}" @@ -309,6 +321,18 @@ fi mv "${NEW_DIR}" "${APP_DIR}" APP_MOVED=1 +say "继承 MindSpace 持久目录" +if [[ "${HAD_OLD_APP}" == "1" && ( -e "${OLD_APP_ARCHIVE}/data" || -L "${OLD_APP_ARCHIVE}/data" ) ]]; then + rm -rf "${APP_DIR}/data" + mv "${OLD_APP_ARCHIVE}/data" "${APP_DIR}/data" + PERSISTED_DATA_MOVED=1 +fi +if [[ "${HAD_OLD_APP}" == "1" && ( -e "${OLD_APP_ARCHIVE}/users" || -L "${OLD_APP_ARCHIVE}/users" ) ]]; then + rm -rf "${APP_DIR}/users" + mv "${OLD_APP_ARCHIVE}/users" "${APP_DIR}/users" + PERSISTED_USERS_MOVED=1 +fi + say "启动 MindSpace service" mkdir -p "${APP_DIR}/data/mindspace" "${APP_DIR}/users" launchctl bootstrap "${LAUNCHD_GUI}" "${SERVICE_PLIST}" >/dev/null 2>&1 || true