#!/usr/bin/with-contenv bashio
# shellcheck shell=bash
set -e

###############
# DNS SETTING #
###############

# Avoid usage of local dns such as adguard home or pihole\n"

if bashio::config.has_value 'DNS_server'; then
    # Define variables
    DNSSERVER=$(bashio::config 'DNS_server')
    DNS=""
    DNSLIST=""

    # Get DNS servers
    # shellcheck disable=SC2086
    for server in ${DNSSERVER//,/ }; do # Separate comma separated values
        # Only add DNS if successful
        if ping -c 1 "$server" &> /dev/null
        then
            DNS="${DNS}nameserver $server\n"
            DNSLIST="$server $DNSLIST"
        else
            bashio::log.warning "DNS $server was requested but can't be pinged. It won't be used"
        fi
    done

    # Only add DNS if there are DNS set
    # shellcheck disable=SC2236
    if [[ ! -z "$DNS" ]]; then
        # Write resolv.conf
        # shellcheck disable=SC2059
        printf "${DNS}" >/etc/resolv.conf
        chmod 644 /etc/resolv.conf
        bashio::log.info "DNS SERVERS set to $DNSLIST"
    else
        bashio::log.warning "No valid DNS were found. Using default router (or HA) dns servers."
    fi

else
    bashio::log.info "DNS Servers option empty. Using default router (or HA) dns servers."
fi
