#!/bin/bash
set -euo pipefail

# 清空控制台输出，便于查看本次执行日志
reset_console() {
  if [ -t 1 ]; then
    # 优先尝试全面重置终端
    if command -v tput >/dev/null 2>&1; then
      tput reset || printf '\033c'
    else
      printf '\033c'
    fi
    # 额外清除滚动缓冲区（部分终端需要）
    printf '\e[3J\e[H\e[2J'
  fi
}
reset_console

# ============================
# 配置区（根据需要修改）
# ============================
PROJECT_DIR="/Users/wlt/Documents/GolandProjects/clinic/health_check/slow_query_check"
ZIP_FILE="/Users/wlt/Documents/slow_query/slow_query_check.zip"

# Kubernetes 目标
POD_NAME="health-check-with-pvc-64fb5595fb-ld4lz"
NAMESPACE="cluster-service"
DEST_PATH="/data/slow-query/slow_query_check.zip"

# ============================
# 1️⃣ 压缩项目目录，只包含 clinic_data_service 下的内容
# ============================
echo "Compressing project directory..."
if [ -f "$ZIP_FILE" ]; then
    echo "Existing zip file found, removing..."
    rm -f "$ZIP_FILE"
fi

# 获取父目录路径
PARENT_DIR=$(dirname "$PROJECT_DIR")
# 获取目录名
DIR_NAME=$(basename "$PROJECT_DIR")

# 进入父目录再压缩，确保压缩包内只包含 clinic_data_service 文件夹
(
  cd "$PARENT_DIR"
  zip -r "$ZIP_FILE" "$DIR_NAME" -x "$DIR_NAME/api/*"
)

echo "Project compressed to $ZIP_FILE"

# ============================
# 2️⃣ 上传到 Kubernetes Pod
# ============================
echo "Uploading zip to pod $POD_NAME..."
kubectl cp "$ZIP_FILE" "$NAMESPACE/$POD_NAME:$DEST_PATH"

echo ""
echo "========== Upload completed successfully!============"
echo "Upload time: $(date '+%Y-%m-%d %H:%M:%S %Z')"
