diff options
-rw-r--r-- | setup-alpine.in | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/setup-alpine.in b/setup-alpine.in index 3472f53..712a950 100644 --- a/setup-alpine.in +++ b/setup-alpine.in @@ -6,6 +6,16 @@ VERSION=@VERSION@ PREFIX= . $PREFIX/lib/libalpine.sh +# Extract fully qualified domain name from current hostname. If none is +# currently set, use 'my.domain'. +get_fqdn() { + local _dn + _dn=$(hostname -f 2>/dev/null) + _dn=${_dn#$(hostname -s 2>/dev/null)} + _dn=${_dn#.} + echo "${_dn:=my.domain}" +} + while getopts "ah" opt ; do case $opt in a) ARCHIVE=yes;; @@ -42,3 +52,16 @@ rc-update -q add networking boot rc boot rc default +# update /etc/hosts - after we have got dhcp address +# Get default fully qualified domain name from *first* domain +# given on *last* search or domain statement. +_dn=$(sed -n \ +-e '/^domain[[:space:]][[:space:]]*/{s///;s/\([^[:space:]]*\).*$/\1/;h;}' \ +-e '/^search[[:space:]][[:space:]]*/{s///;s/\([^[:space:]]*\).*$/\1/;h;}' \ +-e '${g;p;}' /etc/resolv.conf 2>/dev/null) + +_hn=$(hostname) +_hn=${_hn%%.*} + +sed -i -e "s/^127\.0\.0\.1.*/127.0.0.1\t${_hn}.${_dn:-$(get_fqdn)} ${_hn} localhost.localdomain localhost/" /etc/hosts + |