# =============================== # 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