summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--setup-alpine.in23
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
+