#!/bin/sh PREFIX=@PREFIX@ . "$PREFIX/lib/libalpine.sh" usage() { cat <<-__EOF__ usage: setup-dns [-h] [-d domain name] [IPADDR...] Setup ${ROOT}etc/resolv.conf DNS settings options: -h Show this help -d specify search domain name The optional IPADDR are a list of DNS servers to use. __EOF__ exit 1 } while getopts "d:n:h" opt; do case $opt in d) DOMAINNAME="$OPTARG";; h) usage;; n) NAMESERVERS="$OPTARG";; esac done shift $(($OPTIND - 1)) conf="${ROOT}etc/resolv.conf" if [ -f "$conf" ] ; then domain=$(awk '/^domain/ {print $2}' $conf) dns=$(awk '/^nameserver/ {printf "%s ",$2}' $conf) elif fqdn="$(get_fqdn)" && [ -n "$fqdn" ]; then domain="$fqdn" fi if [ -n "$DOMAINNAME" ];then domain="$DOMAINNAME" else ask "DNS domain name? (e.g 'bar.com')" "$domain" domain="$resp" fi if [ -n "$NAMESERVERS" ] || [ $# -gt 0 ];then dns="$NAMESERVERS" else ask "DNS nameserver(s)?" "${dns% }" dns="$(echo $resp | tr ',' ' ')" fi if [ "$domain" != "" ]; then mkdir -p "${conf%/*}" echo "search $domain" > $conf fi if [ -n "$dns" ] || [ $# -gt 0 ] && [ -f "$conf" ]; then sed -i -e '/^nameserver/d' $conf fi for i in $dns $@; do mkdir -p "${conf%/*}" echo "nameserver $i" >> $conf done