SHELL := /usr/bin/env bash

.PHONY: help check-haproxy deploy-haproxy gitea-up gitea-restart migrate dry-run

help:
	@echo "Targets:"
	@echo "  check-haproxy   - validate local haproxy/haproxy.cfg"
	@echo "  deploy-haproxy  - copy cfg to /etc/haproxy and reload service"
	@echo "  gitea-up        - start Gitea via docker compose"
	@echo "  gitea-restart   - restart Gitea container"
	@echo "  migrate         - run GitHub -> Gitea migration"
	@echo "  dry-run         - show variables loaded from .env (safe preview)"

check-haproxy:
	sudo haproxy -c -f haproxy/haproxy.cfg

deploy-haproxy: check-haproxy
	sudo cp haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg
	sudo haproxy -c -f /etc/haproxy/haproxy.cfg
	sudo systemctl reload haproxy

gitea-up:
	sudo mkdir -p /opt/gitea/data/gitea/conf
	sudo cp gitea/docker-compose.yml /opt/gitea/docker-compose.yml
	cd /opt/gitea && sudo docker compose up -d

gitea-restart:
	cd /opt/gitea && sudo docker compose restart gitea

migrate:
	@if [ ! -f .env ]; then echo ".env not found. Copy .env.example -> .env first"; exit 1; fi
	set -a && source .env && set +a && ./scripts/migrate-github-to-gitea.sh

dry-run:
	@if [ ! -f .env ]; then echo ".env not found. Copy .env.example -> .env first"; exit 1; fi
	set -a && source .env && set +a && \
	echo "GITHUB_OWNER=$$GITHUB_OWNER ($$GITHUB_OWNER_TYPE)" && \
	echo "GITEA_URL=$$GITEA_URL" && \
	echo "GITEA_OWNER=$$GITEA_OWNER ($$GITEA_OWNER_TYPE)" && \
	echo "PUSH_WITH_SSH=$$PUSH_WITH_SSH, GITEA_SSH_HOST=$$GITEA_SSH_HOST, GITEA_SSH_PORT=$$GITEA_SSH_PORT" && \
	echo "MIGRATE_LFS=$$MIGRATE_LFS"
