# 引用 .env 文件中的变量
include .env
export $(shell sed 's/=.*//' .env)

.PHONY: help build up down restart logs shell clean ssh

# 默认目标：显示帮助
help:
	@echo "🛠️  Maven + Java + Bun 开发环境管理工具"
	@echo "=================================================="
	@echo "make build    - 构建镜像"
	@echo "make up       - 启动容器 (后台模式)"
	@echo "make down     - 停止并移除容器"
	@echo "make restart  - 重启容器"
	@echo "make logs     - 查看容器日志"
	@echo "make shell    - 进入容器终端 (Bash)"
	@echo "make ssh      - 使用 SSH 连接容器 (测试连接)"
	@echo "make clean    - ⚠️  深度清理 (移除容器、镜像和挂载的数据目录)"
	@echo "=================================================="
	@echo "当前配置:"
	@echo "  SSH端口: $(SSH_PORT)"
	@echo "  代码路径: $(PROJECT_DIR)"

# 构建镜像
build:
	@echo "📦 正在构建镜像 $(IMAGE_NAME):$(IMAGE_TAG)..."
	@docker compose build

# 启动容器
up:
	@echo "🚀 正在启动开发环境..."
	@docker compose up -d
	@echo "✅ 服务已启动!"
	@echo "   - SSH 连接: ssh -p $(SSH_PORT) root@localhost (密码: root)"
	@echo "   - Zed 连接: ssh://root@localhost:$(SSH_PORT)"

# 停止容器
down:
	@echo "🛑 正在停止容器..."
	@docker compose down

# 重启
restart: down up

# 查看日志
logs:
	@docker compose logs -f

# 进入 Shell (通过 Docker exec)
shell:
	@docker exec -it $(CONTAINER_NAME) bash

# SSH 连接测试
ssh:
	@ssh -p $(SSH_PORT) -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@localhost

# 深度清理 (危险操作)
clean: down
	@echo "⚠️  正在清理..."
	@read -p "确定要删除持久化数据目录 $(DATA_DIR) 吗? [y/N] " ans && [ $${ans:-N} = y ] || (echo "已取消"; exit 1)
	@rm -rf $(DATA_DIR)
	@echo "🧹 清理完成"
