#!/bin/sh
# -----------------------------------------------------
# NetConfig 1.1 - (C) 1999 Erich Roncarolo
# NetConfig 1.0 - Found in CClinux
# License: GPL2 (see LICENSE)
# -----------------------------------------------------

test "$1" != "start" && exit 0

echo
CORR=true
while $CORR
do
	echo -n "Would you configure your network (Yes/No) ? "
	read ANSWER
	case $ANSWER in
		y*|Y*) CORR=false
			;;
		n*|N*) CORR=false
			exit 0
			;;
	esac
done

echo
echo "--- Network configuration ---"
test -x /sbin/insmod && echo "/sbin/modprobe" > /proc/sys/kernel/modprobe

CONT=true
while $CONT
do

echo
echo -n "Enter your Ethernet device [eth0]: "
read ETHDEVICE
test "$ETHDEVICE" || ETHDEVICE=eth0

CORR=true
while $CORR
do
	echo -n "Your network driver is a module (Yes/No) ?"
	read ANSWER
	case $ANSWER in
		y*|Y*) CORR=false ; MODULE=true
			;;
		n*|N*) CORR=false ; MODULE=false
			;;
	esac
done

if $MODULE ; then
	echo
	echo "Now a simbolyc link to correct module will be created."
	echo "If this link is present ignore following question (just press [enter])."
	echo 
	find /lib/modules -name "*.o" |grep "/net/"
	echo
	echo -n "Write correct module name (just [enter] if link is present): "
	read MOD_NAME
	if [ "$MOD_NAME" ] ; then
		MOD_BASE=$(basename $MOD_NAME)
		case $MOD_BASE in
		*.o) ;;
		*) MOD_BASE=${MOD_BASE}.o
		esac
		MOD_PATH=$(find /lib/modules -name "${MOD_BASE}")
		MOD_DIR=$(dirname $MOD_PATH)
		(cd $MOD_DIR ; ln -sf $MOD_BASE ${ETHDEVICE}.o )
	fi
fi

echo -n "Enter your ip number"
if [ -f /tmp/ipaddr ] ; then 
	read IPAD < /tmp/ipaddr
	echo -n " [$IPAD]"
fi
echo -n ": "
read IPADDR
test "${IPADDR}" || IPADDR=$IPAD

echo -n "Enter your netmask"
if [ -f /tmp/netmask ] ; then
	read NM < /tmp/netmask
else
	NM=255.255.255.0
fi
echo -n " [$NM]: "
read NETMASK
test "$NETMASK" || NETMASK=$NM

echo -n "Enter your gateway"
if [ -f /tmp/gw ] ; then 
	read GW < /tmp/gw
	echo -n " [$GW]"
fi
echo -n ": "
read GATEWAY
test "$GATEWAY" || GATEWAY=$GW

echo -n "Enter your DNS server"
if [ -f /tmp/dns ] ; then
	read DNS < /tmp/dns
else
	DNS=$GATEWAY
fi
test "$DNS" && echo -n " [$DNS]"
echo -n ": "
read DNSSERVER
test "$DNSSERVER" || DNSSERVER=$DNS

echo
echo "Your config:"
echo "IP         : $IPADDR"
echo "NETMASK    : $NETMASK"
echo "GATEWAY    : $GATEWAY"
echo "DNS SERVER : $DNSSERVER"

CONT=false
CORR=true
while $CORR
do
	echo -n "It's correct (Yes/No) ? "
	read ANSWER
	case $ANSWER in
		y*|Y*) CORR=false
			;;
		n*|N*) CONT=true
			CORR=false
			;;
	esac
done

done

echo "nameserver $DNSSERVER" > /etc/resolv.conf
echo "$DNSSERVER" > /tmp/dns
/sbin/ifconfig lo 127.0.0.1 up
/sbin/ifconfig ${ETHDEVICE} ${IPADDR} netmask ${NETMASK} up
echo ${IPADDR} > /tmp/ipaddr
echo ${NETMASK} > /tmp/netmask
OLD_IFS=$IFS
IFS='.'
read ip1 ip2 ip3 ip4 < /tmp/ipaddr
read nm1 nm2 nm3 nm4 < /tmp/netmask
IFS=$OLD_IFS
ROUTEIPADDR=$[ip1&nm1].$[ip2&nm2].$[ip3&nm3].$[ip4&nm4]
/sbin/route add -net ${ROUTEIPADDR} netmask ${NETMASK} ${ETHDEVICE}
test "${GATEWAY}" && /sbin/route del default 2> /dev/null
test "${GATEWAY}" && /sbin/route add default gw ${GATEWAY}
test "${GATEWAY}" && echo "${GATEWAY}" > /tmp/gw

echo "Network configured!"

