#!/bin/sh
#
# Sample site overrides for network configuration

CDROOT_CONFIG_NETWORK=NO
CDROOT_HOST=""
CDROOT_IP=""
CDROOT_NETMASK=""
CDROOT_DEFROUTE=""
CDROOT_NAMESRV=""
CDROOTNETIF=""

HOSTDB=/usr/hosts.db
lookup_host() {
  if [ -f "$HOSTDB" ]; then
    HOSTINFO=`grep $1 $HOSTDB | awk '$1 != "#" { printf "%s %s\n", $1, $2 }'`
    HOSTIP=`echo $HOSTINFO | cut -f1 -d' '`
    HOSTNAME=`echo $HOSTINFO | cut -f2 -d' '`
    echo "$HOSTIP $HOSTNAME"
    return 0
  else
    return 1
  fi
}


get_network_info() {
  CDROOT_NETIF=""
  NET_INTERFACES=`ifconfig -l`
  if [ -n "$NET_INTERFACES" ]; then
    CDROOT_NETIF=`echo "$NET_INTERFACES" | cut -f1 -d' '`
  fi
  CDROOT_CONFIG_NETWORK=NO
  
  if [ -n "$CDROOT_NETIF" ]; then
    echo "I see you have a network interface ($CDROOT_NETIF)"
    yesno YES "Do you wish to configure it?"
    if [ "$answ" = "YES" ]; then
      DO_LOOKUP=YES
      CDROOT_CONFIG_NETWORK=YES
      CDROOT_HOST=""
      CDROOT_IP=""
      CDROOT_NETMASK=""
      CDROOT_DEFROUTE=""
      fini=0
      while [ $fini -eq 0 ]; do
        echo
        respond CDROOT_HOST "Enter hostname          >"
        if [ "$DO_LOOKUP" = "YES" ]; then
          HOSTINFO=`lookup_host $CDROOT_HOST`
          rc=$?
          DO_LOOKUP=NO
          if [ "$rc" -ne 0 ]; then
            echo "Can't find $CDROOT_HOST in host information."
            echo "You'll need to specify the following information:"
            DO_NETINFO=YES
          else
            DO_NETINFO=NO
            echo "HOSTINFO=$HOSTINFO"
            CDROOT_IP=`echo $HOSTINFO | cut -f1 -d' '`
            CDROOT_HOST=`echo $HOSTINFO | cut -f2 -d' '`
            A=`echo $CDROOT_IP | cut -f1 -d'.'`
            B=`echo $CDROOT_IP | cut -f2 -d'.'`
            C=`echo $CDROOT_IP | cut -f3 -d'.'`
            D=`echo $CDROOT_IP | cut -f4 -d'.'`
            CDROOT_NAMESRV=10.16.149.6
            if [ "$A.$B" = "10.14" ]; then
              if [ "$C" = "0" ]; then
                CDROOT_DEFROUTE="$A.$B.0.1"
              else
                CDROOT_DEFROUTE="$A.$B.$C.1"
              fi
              CDROOT_NETMASK="255.255.255.0"
              CDROOT_NAMESRV=10.14.0.12
            elif [ "$A" = "10" ]; then
              CDROOT_DEFROUTE="$A.$B.0.1"
              CDROOT_NETMASK="255.255.0.0"
            elif [ "$A.$B" = "192.168" ]; then
              CDROOT_DEFROUTE="$A.$B.$C.1"
              CDROOT_NETMASK="255.255.255.0"
            elif [ "$A.$B" = "172.16" ]; then
              CDROOT_DEFROUTE="$A.$B.$C.1"
              CDROOT_NETMASK="255.255.255.0"
            else
              echo "Found your host, but cannot determine the netmask or route"
              echo "Hostname   = $CDROOT_HOST"
              echo "IP Address = $CDROOT_IP"
              respond CDROOT_NETMASK  "Enter network mask      >"
              respond CDROOT_DEFROUTE "Enter default route     >"
            fi
          fi
        else
          DO_NETINFO=YES
        fi
        if [ "$DO_NETINFO" = "YES" ]; then
          if [ -z "$CDROOT_NAMESRV" ]; then
            CDROOT_NAMESRV="10.16.149.6"
          fi
          respond       CDROOT_IP "Enter ip address        >"
          respond  CDROOT_NETMASK "Enter network mask      >"
          respond CDROOT_DEFROUTE "Enter default route     >"
          respond  CDROOT_NAMESRV "Enter nameserver        >"
          respond    CDROOT_NETIF "Enter network interface >"
        fi
        cat <<EOF
  
      Hostname          = $CDROOT_HOST
      IP Address        = $CDROOT_IP
      Network Mask      = $CDROOT_NETMASK
      Default Route     = $CDROOT_DEFROUTE
      Nameserver        = $CDROOT_NAMESRV
      Network Interface = $CDROOT_NETIF
  
EOF
  
        yesno YES "Is this correct?"
        if [ "$answ" = YES ]; then
          fini=1
        else
          yesno YES "Do you want to re-lookup host information?"
          if [ "$answ" = YES ]; then
            DO_LOOKUP=YES
          else
            DO_LOOKUP=NO
          fi
        fi
      done
    else
      CDROOT_CONFIG_NETWORK=NO
      echo "Not configuring a network."
    fi
  fi
  
  echo
}



syntax highlighted by Code2HTML, v. 0.9.1