bbrkn/scripts/deploy-to-gateway.sh
Kirill Kodanev 5f0e287b98
All checks were successful
Deploy DNS Configuration / deploy (push) Successful in 2m15s
Remove a lot of TG domainsm, rewrite scripts
2025-09-12 15:30:31 +03:00

45 lines
1.6 KiB
Bash

#!/bin/bash
set -euo pipefail
# ==============================
# Конфигурация через переменные окружения
# ==============================
TARGET_DIR="${TARGET_DIR:-/opt/appdata/pihole/etc/dnsmasq.d}"
IPSET_CONF="${IPSET_CONF:-/tmp/91-ipset-bbrkn.conf}"
RESOLVE_CONF="${RESOLVE_CONF:-/tmp/92-resolve-bbrkn.conf}"
DOCKER_CONTAINER="${DOCKER_CONTAINER:-pihole}"
echo "Deploying configuration files to $TARGET_DIR"
# Проверка существования сгенерированных файлов
if [ ! -f "$IPSET_CONF" ] || [ ! -f "$RESOLVE_CONF" ]; then
echo "Error: one or both config files not found!"
exit 1
fi
# Бэкап существующих файлов
if [ -f "$TARGET_DIR/$(basename "$IPSET_CONF")" ]; then
cp "$TARGET_DIR/$(basename "$IPSET_CONF")" "$TARGET_DIR/$(basename "$IPSET_CONF").backup.$(date +%Y%m%d-%H%M%S)"
fi
if [ -f "$TARGET_DIR/$(basename "$RESOLVE_CONF")" ]; then
cp "$TARGET_DIR/$(basename "$RESOLVE_CONF")" "$TARGET_DIR/$(basename "$RESOLVE_CONF").backup.$(date +%Y%m%d-%H%M%S)"
fi
# Копирование новых файлов
cp "$IPSET_CONF" "$TARGET_DIR/"
cp "$RESOLVE_CONF" "$TARGET_DIR/"
# Перезапуск контейнера
echo "Restarting $DOCKER_CONTAINER container..."
docker restart "$DOCKER_CONTAINER"
sleep 5
if ! docker ps | grep -q "$DOCKER_CONTAINER"; then
echo "Error: $DOCKER_CONTAINER container failed to start"
exit 1
fi
echo "Deployment completed successfully"
DOMAIN_COUNT=$(grep -c '^ipset=' "$TARGET_DIR/$(basename "$IPSET_CONF")" || echo "0")
echo "Applied configuration for $DOMAIN_COUNT domains"