#!/bin/sh
#
# NAME: cfglan
#
# Either run interactively or specify all args on the command line:
#
#  cfglan dhcp
#
#  cfglan 10.0.0.1 10.0.0.255 255.255.255.0 10.0.0.5 ihug.co.nz 203.109.252.42,203.109.252.43
#
# Defaults
RESOLV=/etc/resolv.conf
DEFIP=10.0.0.1
DEFBROADCAST=10.0.0.255
DEFNETMASK=255.255.255.0
DEFGATEWAY=10.0.0.5
DEFDOMAIN="ihug.co.nz"
DEFNS="203.109.252.42 203.109.252.43"
#
# Always configure loopback
#
ifconfig lo 127.0.0.1
route add -net 127.0.0.0 netmask 255.0.0.0 lo

# Now check the command line args
if [ "$1" != "" ];then
   if [ "$1" = "-h" -o "$1" = "-?" -o "$1" = "-help" -o "$1" = "--help" ];then
      cat <<EOF

cfglan will interactively prompt for all network parameters unless you provide
them as arguments:

   cfglan dhcp

   cfglan <ip> <broadcast> <netmask> <defaultgw> [<domain> <nameserver[,nameserver...]]

   cfglan 10.0.0.1 10.0.0.255 255.255.255.0 10.0.0.5 

   cfglan  10.0.0.1 10.0.0.255 255.255.255.0 10.0.0.5 blah.com 1.2.3.4,1.2.3.5
EOF
      exit
   fi

   if [ "$1" = dhcp ];then
      echo dhcpd
      exit
   fi
   echo ifconfig eth0 $1 broadcast $2 netmask $3
   echo route add default gw $4
   if [ "$5" != "" ];then
      echo "search $5" >$RESOLV
      for x in `echo $6|tr ',' ' '`
      do
         echo "nameserver $x" >>$RESOLV
      done
   fi
   exit
fi

echo "Configure LAN"
echo "============="
echo -n "Configure using DHCP (y/n): "
read DHCP
if [ "$DHCP" = y ];then
   dhcpcd
   exit
fi
echo -n "IP Address [ $DEFIP ]: "
read IP
if [ "$IP" = "" ];then
   IP="$DEFIP"
fi
echo -n "Broadcast Address [ $DEFBROADCAST ]: "
read BROADCAST
if [ "$BROADCAST" = "" ];then
   BROADCAST="$DEFBROADCAST"
fi
echo -n "Netmask [ $DEFNETMASK ]: "
read NETMASK
if [ "$NETMASK" = "" ];then
   NETMASK="$DEFNETMASK"
fi
echo -n "Default Gateway [ $DEFGATEWAY ]: "
read GATEWAY
if [ "$GATEWAY" = "" ];then
   GATEWAY="$DEFGATEWAY"
fi

echo -n "What domain are you in (for the resolv.conf) [ $DEFDOMAIN ]: "
read DOMAIN
if [ "$DOMAIN" = "" ];then
   DOMAIN="$DEFDOMAIN"
fi

echo -n "Nameservers? [ $DEFNS ]: "
read NS
if [ "$NS" = "" ];then
   NS="$DEFNS"
fi

echo "search $DOMAIN" >$RESOLV
for x in $NS
do
   echo "nameserver $x" >>$RESOLV
done

ifconfig eth0 $IP broadcast $BROADCAST netmask $NETMASK
route add default gw $GATEWAY

