mirror of
https://github.com/aljazceru/addons.git
synced 2025-12-17 05:04:21 +01:00
37 lines
1020 B
Bash
37 lines
1020 B
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
CONFIG_PATH=/data/options.json
|
|
|
|
DEFAULTS=$(jq --raw-output '.defaults[]' $CONFIG_PATH)
|
|
FORWARDS=$(jq --raw-output '.forwards | length' $CONFIG_PATH)
|
|
HOSTS=$(jq --raw-output '.hosts | length' $CONFIG_PATH)
|
|
INTERFACE=$(jq --raw-output '.interface | length' $CONFIG_PATH)
|
|
|
|
# Set interface
|
|
echo "interface=$INTERFACE" >> /etc/dnsmasq.conf
|
|
|
|
# Add default forward servers
|
|
for line in $DEFAULTS; do
|
|
echo "server=$line" >> /etc/dnsmasq.conf
|
|
done
|
|
|
|
# Create domain forwards
|
|
for (( i=0; i < "$FORWARDS"; i++ )); do
|
|
DOMAIN=$(jq --raw-output ".forwards[$i].domain" $CONFIG_PATH)
|
|
SERVER=$(jq --raw-output ".forwards[$i].server" $CONFIG_PATH)
|
|
|
|
echo "server=/$DOMAIN/$SERVER" >> /etc/dnsmasq.conf
|
|
done
|
|
|
|
# Create static hosts
|
|
for (( i=0; i < "$HOSTS"; i++ )); do
|
|
HOST=$(jq --raw-output ".forwards[$i].host" $CONFIG_PATH)
|
|
IP=$(jq --raw-output ".forwards[$i].ip" $CONFIG_PATH)
|
|
|
|
echo "address=/$HOST/$IP" >> /etc/dnsmasq.conf
|
|
done
|
|
|
|
# run dnsmasq
|
|
exec dnsmasq -C /etc/dnsmasq.conf < /dev/null
|