#! /bin/bash
# chkconfig: 35 09 90
# description: Configure nics using boot line parameters 
#   This file exists in /etc/init.d/ in the routing domain

replace_in_file() {
  local filename=$1
  local keyname=$2
  local value=$3
  sed -i /$keyname=/d $filename
  echo "$keyname=$value" >> $filename
  return $?
}

CMDLINE=$(cat /proc/cmdline)
TEMPLATE="domR"

for i in $CMDLINE
  do
    # search for foo=bar pattern and cut out foo
    KEY=$(echo $i | cut -d= -f1)
    VALUE=$(echo $i | cut -d= -f2)
    case $KEY in 
      eth0ip)
          ETH0_IP=$VALUE
          ;;
      eth1ip)
          ETH1_IP=$VALUE
          ;;
      eth2ip)
          ETH2_IP=$VALUE
          ;;
      gateway)
          GW=$VALUE
          ;;
      eth0mask)
          ETH0_MASK=$VALUE
          ;;
      eth1mask)
          ETH1_MASK=$VALUE
          ;;
      eth2mask)
          ETH2_MASK=$VALUE
          ;;
      dns1)
          NS1=$VALUE
          ;;
      dns2)
          NS2=$VALUE
          ;;
      domain)
          DOMAIN=$VALUE
          ;;
      template)
        TEMPLATE=$VALUE
      	;;
    esac
done

replace_in_file /etc/sysconfig/network-scripts/ifcfg-eth0 IPADDR $ETH0_IP
replace_in_file /etc/sysconfig/network-scripts/ifcfg-eth0 NETMASK $ETH0_MASK
if [ "$TEMPLATE" == "domP" ]
then
  replace_in_file /etc/sysconfig/network-scripts/ifcfg-eth0 ONBOOT No
else
  replace_in_file /etc/sysconfig/network-scripts/ifcfg-eth0 ONBOOT Yes
fi

replace_in_file /etc/sysconfig/network-scripts/ifcfg-eth1 IPADDR $ETH1_IP
replace_in_file /etc/sysconfig/network-scripts/ifcfg-eth1 NETMASK $ETH1_MASK
replace_in_file /etc/sysconfig/network-scripts/ifcfg-eth2 IPADDR $ETH2_IP
replace_in_file /etc/sysconfig/network-scripts/ifcfg-eth2 NETMASK $ETH2_MASK
replace_in_file /etc/sysconfig/network GATEWAY $GW

#Nameserver
if [ -n "$NS1" ]
then
  echo "nameserver $NS1" > /etc/dnsmasq-resolv.conf
  echo "nameserver $NS1" > /etc/resolv.conf
fi

if [ -n "$NS2" ]
then
  echo "nameserver $NS2" >> /etc/dnsmasq-resolv.conf
  echo "nameserver $NS2" >> /etc/resolv.conf
fi

if [ -n "$DOMAIN" ]
then
  #send domain name to dhcp clients
  sed -i s/[#]*dhcp-option=15.*$/dhcp-option=15,\"$DOMAIN\"/ /etc/dnsmasq.conf
  #DNS server will append $DOMAIN to local queries
  sed -r -i s/^[#]?domain=.*$/domain=$DOMAIN/ /etc/dnsmasq.conf
  #answer all local domain queries
  sed  -i -e "s/^[#]*local=.*$/local=\/$DOMAIN\//" /etc/dnsmasq.conf
fi

if [ "$TEMPLATE" == "domR" ]
then
	sed -i  /gateway/d /etc/hosts
	echo "$eth0ip gateway" >> /etc/hosts
fi
sed -i -e "s/^dhcp-range=.*$/dhcp-range=$eth0ip,static/" /etc/dnsmasq.conf
