#!/bin/bash

# 定义关键变量，方便后续维护修改
TARGET_DIR="~/data/dev/market_page"
SUDO_PASSWORD="123quant-speed"

# 脚本执行出错时立即退出
set -e

# 1. 切换到目标目录（先解析 ~ 为实际家目录）
echo "===== 切换到目标目录: $TARGET_DIR ====="
RESOLVED_DIR=$(eval echo $TARGET_DIR)
cd $RESOLVED_DIR || {
  echo "错误：目录 $RESOLVED_DIR 不存在！"
  exit 1
}

# 2. 停止并移除 Docker 容器（自动输入 sudo 密码）
echo -e "\n===== 停止 Docker 容器 ====="
echo $SUDO_PASSWORD | sudo -S docker compose down

# 3. 删除 Docker 镜像（说明：这里默认删除 compose 关联的镜像，也可指定镜像名）
echo -e "\n===== 删除 Docker 镜像 ====="
# 方式1：删除 compose.yml 中定义的所有镜像（推荐）
echo $SUDO_PASSWORD | sudo -S docker compose down --rmi all
# 方式2：如果你想删除指定镜像，替换上面这行（示例，需修改为你的镜像名）
# echo $SUDO_PASSWORD | sudo -S docker rmi -f your-image-name:tag

# 4. 拉取 Git 最新代码
echo -e "\n===== 拉取 Git 代码 ====="
git pull || {
  echo "警告：Git pull 失败（可能是本地有未提交的修改），脚本继续执行..."
}

# 5. 重新启动 Docker 容器（后台运行）
echo -e "\n===== 启动 Docker 容器 ====="
echo $SUDO_PASSWORD | sudo -S docker compose up -d

echo -e "\n===== 操作完成！====="