bbrkn/scripts/deploy-to-gateway.sh

39 lines
1.3 KiB
Bash

#!/bin/bash
set -euo pipefail
# ==============================
# Конфигурация через переменные
# ==============================
TARGET_DIR="${TARGET_DIR:-/opt/appdata/pihole/etc/dnsmasq.d}"
IPSET_CONF="${IPSET_CONF:-91-ipset-bbrkn.conf}"
RESOLVE_CONF="${RESOLVE_CONF:-92-resolve-bbrkn.conf}"
DOCKER_CONTAINER="${DOCKER_CONTAINER:-pihole}"
echo "Deploying configuration files to $TARGET_DIR"
# Бэкап существующих файлов
if [ -f "$TARGET_DIR/$IPSET_CONF" ]; then
cp "$TARGET_DIR/$IPSET_CONF" "$TARGET_DIR/$IPSET_CONF.backup.$(date +%Y%m%d-%H%M%S)"
fi
if [ -f "$TARGET_DIR/$RESOLVE_CONF" ]; then
cp "$TARGET_DIR/$RESOLVE_CONF" "$TARGET_DIR/$RESOLVE_CONF.backup.$(date +%Y%m%d-%H%M%S)"
fi
# Копирование новых файлов
cp "/tmp/$IPSET_CONF" "$TARGET_DIR/$IPSET_CONF"
cp "/tmp/$RESOLVE_CONF" "$TARGET_DIR/$RESOLVE_CONF"
# Перезапуск контейнера
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/$IPSET_CONF" || echo "0")
echo "Applied configuration for $DOMAIN_COUNT domains"