#!/bin/bash
# 升级前回调：备份数据目录；备份失败必须显式报错并中止升级。
. "$(dirname "$0")/lib.sh"
require_env TRIM_PKGVAR

BACKUP_DIR="${TRIM_PKGVAR}/backup"
if ! mkdir -p "$BACKUP_DIR"; then
  fail_msg "错误：升级前备份失败：无法创建备份目录 ${BACKUP_DIR}，已中止升级"
  exit 1
fi

STAMP="$(date '+%Y%m%d%H%M%S')"
BACKUP_FILE="${BACKUP_DIR}/pre-upgrade-${TRIM_APPVER:-unknown}-${STAMP}.tar.gz"
if ! tar czf "$BACKUP_FILE" --exclude=backup -C "$TRIM_PKGVAR" .; then
  fail_msg "错误：升级前备份失败（${TRIM_PKGVAR}），已中止升级"
  exit 1
fi
echo "升级前已备份 ${TRIM_PKGVAR} -> ${BACKUP_FILE}"
exit 0
