Remove sourcing /scripts/functions in components
[live-boot-grml.git] / components / 9990-netbase.sh
index b3f886c..bae858a 100755 (executable)
@@ -9,14 +9,15 @@ Netbase ()
                return
        fi
 
-       # FIXME: stop hardcoding overloading of initramfs-tools functions
-       . /scripts/functions
-       . /lib/live/boot/9990-initramfs-tools.sh
-
        log_begin_msg "Preconfiguring networking"
 
        IFFILE="/root/etc/network/interfaces"
-       DNSFILE="/root/etc/resolv.conf"
+       if [ -L /root/etc/resolv.conf ] ; then
+               # assume we have resolvconf
+               DNSFILE="/root/etc/resolvconf/resolv.conf.d/base"
+       else
+               DNSFILE="/root/etc/resolv.conf"
+       fi
 
        if [ "${STATICIP}" = "frommedia" ] && [ -e "${IFFILE}" ]
        then
@@ -75,7 +76,11 @@ EOF
                        fi
                done
        else
-               if [ -z "${NETBOOT}" ] || [ -n "${DHCP}" ]
+               if [ -n "${NODHCP}" ]
+               then
+                       # force DHCP off
+                       method="manual"
+               elif [ -z "${NETBOOT}" ] || [ -n "${DHCP}" ]
                then
                        # default, dhcp assigned
                        method="dhcp"
@@ -88,7 +93,7 @@ EOF
                # iterate the physical interfaces and add them to the interfaces list and also add when ethdevice= called on cmdline
                if [ "${method}" != dhcp ] || ([ ! -x /root/usr/sbin/NetworkManager ] && [ ! -x /root/usr/sbin/wicd ]) || [ ! -z "${ETHDEVICE}" ]
                then
-                       for interface in /sys/class/net/eth* /sys/class/net/ath* /sys/class/net/wlan*
+                       for interface in /sys/class/net/eth* /sys/class/net/ath* /sys/class/net/wlan* /sys/class/net/en*
                        do
                                [ -e ${interface} ] || continue
                                i="$(basename ${interface})"
@@ -102,35 +107,30 @@ EOF
                        done
                fi
 
-               if [ ! -f /root/etc/resolv.conf ] || [ -z "$(cat /root/etc/resolv.conf)" ]
+               if [ ! -f "${DNSFILE}" ] || [ -z "$(cat ${DNSFILE})" ]
                then
                        if [ -f /netboot.config ]
                        then
                                # create a resolv.conf if it is not present or empty
                                cp /netboot.config /root/var/log/netboot.config
 
-                               rc_search=$(cat netboot.config | awk '/domain/{print $3}')
-                               rc_server0=$(cat netboot.config | awk '/dns0/{print $5}')
-                               rc_server1=$(cat netboot.config | awk '/dns0/{print $8}')
-                               rc_server0="nameserver ${rc_server0}"
-
-                               if [ "${rc_server1}" = "0.0.0.0" ]
-                               then
-                                       rc_server1=""
-                               else
-                                       rc_server1="nameserver ${rc_server1}"
-                               fi
+                               rc_search=$(cat netboot.config | awk '/domain/ { print $3 }')
+                               rc_server0="$(cat netboot.config | awk '/dns0/ { print $5 }')"
 
-cat > /root/etc/resolv.conf << EOF
-# /etc/resolv.conf
-# Autogenerated by live-boot
+cat > $DNSFILE << EOF
 search ${rc_search}
 domain ${rc_search}
-${rc_server0}
-${rc_server1}
+nameserver ${rc_server0}
 EOF
 
-                               cat /root/etc/resolv.conf >> /root/var/log/netboot.config
+                               rc_server1=$(cat netboot.config | awk '/dns0/ { print $8 }')
+
+                               if [ "${rc_server1}" != "0.0.0.0" ]
+                               then
+                                       echo "nameserver ${rc_server1}" >> $DNSFILE
+                               fi
+
+                               cat $DNSFILE >> /root/var/log/netboot.config
                        fi
                fi
        fi