#!/bin/bash
# 在「旧机/当前 Grok 工作机」执行：连上新服后全速搬家
# 用法: bash NEW_SERVER_RESUME_MIGRATE.sh
set -e
NEW=root@82.41.66.212
PORT=36458
export SSHPASS="${SSHPASS:-abcde@1998}"
SSH="sshpass -e ssh -o StrictHostKeyChecking=no -o ConnectTimeout=15 -p $PORT"
SCP="sshpass -e scp -o StrictHostKeyChecking=no -P $PORT"

echo "[check]"
$SSH $NEW 'hostname; mkdir -p /www/wwwroot /root/.continue /root/.grok /root/.local/share; which rsync || apt-get install -y rsync'

echo "[1/4] 记忆"
$SSH $NEW 'mkdir -p /root/.continue /root/.grok'
tar -C /root -cf - .continue | $SSH $NEW 'tar -C /root -xf -'
tar -C /root -cf - .grok --exclude=.grok/downloads | $SSH $NEW 'tar -C /root -xf -' || true

echo "[2/4] code-server 数据"
tar -C /root -cf - .local/share/code-server 2>/dev/null | $SSH $NEW 'mkdir -p /root/.local/share && tar -C /root -xf -' || true

echo "[3/4] 站点 wwwroot（并行 4 路大目录）"
$SSH $NEW 'mkdir -p /www/wwwroot'
for d in sanshanyouya.com fengshuilunliuzhuanzhecidaowole.com tiaozhuan yidingchenggong.cc tianxiazhidabuszaiwande.com _sp_shared; do
  if [ -d "/bt/wwwroot/$d" ] || [ -d "/www/wwwroot/$d" ]; then
    SRC="/bt/wwwroot/$d"
    [ -d "$SRC" ] || SRC="/www/wwwroot/$d"
    echo "  sync $d"
    tar -C "$(dirname "$SRC")" -cf - "$(basename "$SRC")" | $SSH $NEW "tar -C /www/wwwroot -xf -" &
  fi
done
wait
# rest
echo "  sync rest"
tar -C /bt/wwwroot -cf - \
  --exclude=sanshanyouya.com \
  --exclude=fengshuilunliuzhuanzhecidaowole.com \
  --exclude=tiaozhuan \
  --exclude=yidingchenggong.cc \
  --exclude=_lab_spider_zip \
  --exclude='*.rar' \
  . 2>/dev/null | $SSH $NEW 'tar -C /www/wwwroot -xf -' || true

echo "[4/4] 安装 code-server + 开机"
$SSH $NEW 'bash -s' <<'REMOTE'
set -e
if ! command -v code-server >/dev/null; then
  curl -fsSL https://code-server.dev/install.sh | sh
fi
mkdir -p /root/.config/code-server
cat > /root/.config/code-server/config.yaml <<EOF
bind-addr: 0.0.0.0:8080
auth: password
password: xifacaicaishentai
cert: false
EOF
# open firewall
ufw allow 8080/tcp 2>/dev/null || true
systemctl enable --now code-server@root 2>/dev/null || \
  (nohup code-server --bind-addr 0.0.0.0:8080 --auth password >/root/code-server.log 2>&1 &)
# rsync for future
apt-get install -y -qq rsync 2>/dev/null || true
echo DONE_REMOTE
hostname
du -sh /www/wwwroot /root/.continue /root/.grok 2>/dev/null
REMOTE

echo "ALL_DONE"
