Rewrite logic, use env variables, and add comments to the following code to make it more readable and maintainable.

This commit is contained in:
Kirill Kodanev 2025-09-11 19:49:28 +03:00
parent 9a449517ed
commit 31d07d4484
4 changed files with 259 additions and 35 deletions

View file

@ -1,40 +1,39 @@
#!/bin/bash
set -e
set -euo pipefail
# Пути к конфигурационным файлам
TARGET_DIR="/opt/appdata/pihole/etc/dnsmasq.d"
IPSET_CONF="91-ipset-bbrkn.conf"
RESOLVE_CONF="92-resolve-bbrkn.conf"
# ==============================
# Конфигурация через переменные
# ==============================
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"
# Перезапускаем dnsmasq через Pi-hole контейнер
echo "Restarting Pi-hole container..."
docker restart pihole
# Проверяем успешность перезапуска
sleep 5
if ! docker ps | grep -q pihole; then
echo "Error: Pi-hole container failed to start"
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"