Files
2026-05-23 13:31:08 +08:00

67 lines
1.9 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# uninstall.sh — 完全卸载 moziplus v2
set -euo pipefail
TARGET_DIR="${MOZIPLUS_V2_DIR:-$HOME/.sanguo_projects/sanguo_moziplus_v2}"
PM2_NAME="sanguo-moziplus-v2"
CONFIRM=false
KEEP_DATA=false
DATA_BACKUP=""
usage() {
echo "Usage: $0 [options]"
echo ""
echo "Options:"
echo " --target=DIR 安装目录"
echo " --keep-data 保留 data/ 目录(移动到 data-backup-<timestamp>/"
echo " --confirm 确认执行(必须传)"
echo " -h, --help 显示帮助"
exit 0
}
for arg in "$@"; do
case "$arg" in
--target=*) TARGET_DIR="${arg#*=}" ;;
--keep-data) KEEP_DATA=true ;;
--confirm) CONFIRM=true ;;
-h|--help) usage ;;
esac
done
if [ "$CONFIRM" = false ]; then
echo "⚠️ This will completely uninstall moziplus v2! Use --confirm to proceed."
echo ""
echo " Target: $TARGET_DIR"
echo " PM2: $PM2_NAME"
[ "$KEEP_DATA" = true ] && echo " Data: Will be preserved (data-backup-*/)"
[ "$KEEP_DATA" = false ] && echo " Data: Will be DELETED (use --keep-data to preserve)"
exit 1
fi
if [ ! -d "$TARGET_DIR" ]; then
echo "❌ Target directory not found: $TARGET_DIR" && exit 1
fi
# ── 停止并删除 PM2 进程 ──
echo "🛑 Removing PM2 process..."
pm2 delete "$PM2_NAME" 2>/dev/null || echo " (process not found, skipping)"
pm2 save
# ── 保留数据 ──
if [ "$KEEP_DATA" = true ] && [ -d "$TARGET_DIR/data" ]; then
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
DATA_BACKUP="$HOME/.sanguo_projects/moziplus-v2-data-backup-$TIMESTAMP"
echo "📦 Backing up data to: $DATA_BACKUP"
mv "$TARGET_DIR/data" "$DATA_BACKUP"
fi
# ── 删除安装目录 ──
echo "🗑️ Removing installation: $TARGET_DIR"
rm -rf "$TARGET_DIR"
# ── 完成 ──
echo ""
echo "✅ moziplus v2 uninstalled"
[ -n "$DATA_BACKUP" ] && echo " Data backup: $DATA_BACKUP"
echo " Run deploy.sh to reinstall"