# ===============================
# Makefile для управления dnsmasq-конфигами
# ===============================

# --- Переменные окружения (с дефолтами для локального запуска) ---
IPSET_CONF     ?= /tmp/91-ipset-bbrkn.conf
RESOLVE_CONF   ?= /tmp/92-resolve-bbrkn.conf
CHROME_SERVER  ?= http://10.100.1.2:3000
DOMAINS_FILE   ?= domains.txt
DNS_SERVER     ?= 10.100.1.2
CACHE_DIR      ?= .cache/api
CACHE_TTL_DAYS ?= 15

# Экспортируем переменные, чтобы они были доступны внутри shell-скриптов
export IPSET_CONF RESOLVE_CONF CHROME_SERVER DOMAINS_FILE DNS_SERVER CACHE_DIR CACHE_TTL_DAYS

# --- Основные цели ---
.PHONY: all clean cache-clean check generate deploy

all: generate deploy
	@echo "✅ Конфиги успешно сгенерированы и задеплоены"

clean:
	@echo "🧹 Очистка временных файлов"
	@rm -f $(IPSET_CONF) $(RESOLVE_CONF)

cache-clean:
	@echo "🗑  Очистка кэша API ($(CACHE_DIR))"
	@rm -rf $(CACHE_DIR)
	@echo "✔ Кэш очищен"

check:
	@echo "🔍 Проверка файла доменов ($(DOMAINS_FILE))"
	@if [ ! -f "$(DOMAINS_FILE)" ]; then \
	  echo "Ошибка: файл $(DOMAINS_FILE) не найден"; \
	  exit 1; \
	fi
	@grep -v '^#' $(DOMAINS_FILE) | grep -v '^$$' | while read domain; do \
	  if ! echo "$$domain" | grep -qE '^[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$$'; then \
	    echo "Ошибка: Неверный формат домена: $$domain"; \
	    exit 1; \
	  fi \
	done
	@echo "✔ Файл доменов прошёл проверку"

generate:
	@echo "⚙ Генерация dnsmasq-конфигов"
	@chmod +x scripts/generate-configs.sh
	@./scripts/generate-configs.sh

deploy:
	@echo "🚀 Деплой конфигов в систему"
	@chmod +x scripts/deploy-to-gateway.sh
	@./scripts/deploy-to-gateway.sh
