Remove a lot of TG domainsm, rewrite scripts
All checks were successful
Deploy DNS Configuration / deploy (push) Successful in 2m15s

This commit is contained in:
Kirill Kodanev 2025-09-12 15:30:31 +03:00
parent 72bbdc2457
commit 5f0e287b98
5 changed files with 61 additions and 139 deletions

View file

@ -1,46 +1,47 @@
# ==========================
# Makefile для проекта BBRKN
# ==========================
# ===============================
# Makefile для управления dnsmasq-конфигами
# ===============================
DOMAINS := domains.txt
GEN_SCRIPT := ./scripts/generate-configs.sh
DEPLOY_SCRIPT := ./scripts/deploy-to-gateway.sh
# --- Переменные окружения (с дефолтами для локального запуска) ---
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
IPSET_CONF := 91-ipset-bbrkn.conf
RESOLVE_CONF := 92-resolve-bbrkn.conf
# Экспортируем переменные, чтобы они были доступны внутри shell-скриптов
export IPSET_CONF RESOLVE_CONF CHROME_SERVER DOMAINS_FILE
# Генерация конфигов
generate:
@echo ">>> Генерация конфигурационных файлов из $(DOMAINS)"
$(GEN_SCRIPT)
# --- Основные цели ---
.PHONY: all clean check generate deploy
# Тестовый прогон (генерация + просмотр кусков файлов, но без деплоя)
test: generate
@echo ">>> Тестовый прогон (без деплоя)"
@echo "--- IPSET CONFIG ($(IPSET_CONF)) ---"
@head -n 10 $(IPSET_CONF) || true
@echo "... (всего $$(wc -l < $(IPSET_CONF)) строк)"
@echo
@echo "--- RESOLVE CONFIG ($(RESOLVE_CONF)) ---"
@head -n 10 $(RESOLVE_CONF) || true
@echo "... (всего $$(wc -l < $(RESOLVE_CONF)) строк)"
all: generate deploy
@echo "✅ Конфиги успешно сгенерированы и задеплоены"
# Проверка: только сводка из generate-configs.sh
check:
@echo ">>> Проверка списка доменов (без генерации файлов)"
$(GEN_SCRIPT) --dry-run
# Деплой на шлюз (Pi-hole)
deploy: generate
@echo ">>> Деплой на шлюз"
$(DEPLOY_SCRIPT)
# Полный цикл: генерация + деплой
all: deploy
# Уборка временных файлов
clean:
@echo ">>> Удаление временных файлов"
@echo "🧹 Очистка временных файлов"
@rm -f $(IPSET_CONF) $(RESOLVE_CONF)
.PHONY: generate test check deploy all clean
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