bffbdafbfc
Co-authored-by: Cursor <cursoragent@cursor.com>
81 lines
2.1 KiB
Bash
Executable File
81 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# deploy/lib/uninstall.sh — 一键卸载(仅本项目 PM2,不动其它进程)
|
|
set -e
|
|
set -u
|
|
if [ -n "${BASH_VERSION:-}" ]; then
|
|
set -o pipefail
|
|
fi
|
|
|
|
LIB_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
# shellcheck source=common.sh
|
|
source "${LIB_DIR}/common.sh"
|
|
|
|
main_uninstall() {
|
|
require_root
|
|
|
|
local root=""
|
|
if ! root="$(resolve_repo_root)"; then
|
|
if [[ -d "${INSTALL_ROOT}" ]]; then
|
|
root="${INSTALL_ROOT}"
|
|
else
|
|
die "未找到安装目录 ${INSTALL_ROOT}"
|
|
fi
|
|
fi
|
|
REPO_ROOT="${root}"
|
|
|
|
echo ""
|
|
echo "将卸载 比特骆驼自动化对冲系统 (eth_hedge_sim):"
|
|
echo " - 停止并删除 PM2 进程: ${PM2_APP_NAME}"
|
|
echo " - 移走目录: ${INSTALL_ROOT}"
|
|
echo " - 备份 .env 到 ${BACKUP_ROOT}"
|
|
echo " - 不影响其它 PM2 应用"
|
|
echo ""
|
|
if ! confirm_yes "确认卸载?"; then
|
|
log "已取消卸载"
|
|
return 0
|
|
fi
|
|
|
|
local stamp backup_dir removed_dir
|
|
stamp="$(TZ="${TZ_NAME}" date +%Y%m%d-%H%M%S)"
|
|
backup_dir="${BACKUP_ROOT}/pre-uninstall-${stamp}"
|
|
removed_dir="${INSTALL_ROOT}.removed.${stamp}"
|
|
mkdir -p "${backup_dir}"
|
|
|
|
step "备份配置"
|
|
if [[ -f "${REPO_ROOT}/.env" ]]; then
|
|
cp -a "${REPO_ROOT}/.env" "${backup_dir}/.env"
|
|
fi
|
|
if [[ -d "${REPO_ROOT}/backend/data" ]]; then
|
|
cp -a "${REPO_ROOT}/backend/data" "${backup_dir}/data" 2>/dev/null || true
|
|
fi
|
|
{
|
|
echo "created_at=${stamp}"
|
|
echo "install_root=${INSTALL_ROOT}"
|
|
echo "removed_dir=${removed_dir}"
|
|
echo "pm2_app=${PM2_APP_NAME}"
|
|
} >"${backup_dir}/uninstall.manifest"
|
|
|
|
step "停止并移除 PM2 进程 ${PM2_APP_NAME}"
|
|
pm2_stop_project
|
|
pm2_delete_project
|
|
|
|
step "移走安装目录"
|
|
if [[ -d "${INSTALL_ROOT}" ]]; then
|
|
mv "${INSTALL_ROOT}" "${removed_dir}"
|
|
log "已移动: ${INSTALL_ROOT} -> ${removed_dir}"
|
|
else
|
|
log "安装目录不存在,跳过"
|
|
fi
|
|
|
|
echo ""
|
|
echo "卸载完成."
|
|
echo " 配置备份: ${backup_dir}"
|
|
echo " 旧目录: ${removed_dir} (确认无误后可手动 rm -rf)"
|
|
echo ""
|
|
echo "回滚示例:"
|
|
echo " mv ${removed_dir} ${INSTALL_ROOT}"
|
|
echo " bash ${INSTALL_ROOT}/deploy/manage.sh # 选 1 修复环境"
|
|
}
|
|
|
|
main_uninstall "$@"
|