#!/bin/sh

## Check if 3w-xxxx already exists in /mnt/etc/rc.config or /mnt/etc/modules.conf.
if [ -f /mnt/etc/rc.config ]; then
    cat /mnt/etc/rc.config | grep 'INITRD_MODULES' >/dev/null 2>&1
    if [ $? -eq 0 ]; then
	cat /mnt/etc/rc.config | grep '3w-xxxx' >/dev/null 2>&1
	if [ $? -ne 0 ]; then 
	    ## 3w-xxxx entry not found in rc.config
	    ## Read INITRD_MODULES= from rc.config
	    mods=`cat /mnt/etc/rc.config | grep INITRD_MODULES | cut -d '"' -f2` >/dev/null 2>&1
	    cp /mnt/etc/rc.config /mnt/etc/rc.config.bak

	    if [ "$mods" == "" ]; then 
	        ## No entries found in rc.config
		cat /etc/rc.config | sed -e s/'INITRD_MODULES=""'/'INITRD_MODULES="3w-xxxx"'/ >/mnt/etc/rc.config.tmp

	    else 
		## 3w-xxxx entry not found but other entries exist in rc.config
		## Define 3w-xxxx module
		mods2='3w-xxxx'
		mods3="$mods $mods2"
		cat /mnt/etc/rc.config | sed -e s/INITRD_MODULES="\"$mods"\"/INITRD_MODULES="\"$mods3"\"/ >/mnt/etc/rc.config.tmp
		fi	

	  ## Copy in updated rc.config then run mk_initrd
	  cp -f /mnt/etc/rc.config.tmp /mnt/etc/rc.config
	fi

    elif [ -f /mnt/etc/sysconfig/kernel ]; then
	  cat /mnt/etc/sysconfig/kernel | grep 'INITRD_MODULES' >/dev/null 2>&1
	  if [ $? -eq 0 ]; then
	      cat /mnt/etc/sysconfig/kernel | grep '3w-xxxx' >/dev/null 2>&1
	      if [ $? -ne 0 ]; then 
	          ## 3w-xxxx entry not found in sysconfig/kernel
	          ## Read INITRD_MODULES= from sysconfig/kernel
	          mods=`cat /mnt/etc/sysconfig/kernel | grep INITRD_MODULES | cut -d '"' -f2` >/dev/null 2>&1
	          cp /mnt/etc/sysconfig/kernel /mnt/etc/sysconfig/kernel.bak

	          if [ "$mods" == "" ]; then 
	              ## No entries found in sysconfig/kernel
		      cat /mnt/etc/sysconfig/kernel | sed -e s/'INITRD_MODULES=""'/'INITRD_MODULES="3w-xxxx"'/ >/mnt/etc/sysconfig/kernel.tmp

	          else 
		      ## 3w-xxxx entry not found but other entries exist in sysconfig/kernel
		      ## Define 3w-xxxx module
		      mods2='3w-xxxx'
		      mods3="$mods $mods2"
		      cat /mnt/etc/sysconfig/kernel | sed -e s/INITRD_MODULES="\"$mods"\"/INITRD_MODULES="\"$mods3"\"/ >/mnt/etc/sysconfig/kernel.tmp
		  fi	

	      ## Copy in updated sysconfig/kernel then run mk_initrd
	      cp -f /mnt/etc/sysconfig/kernel.tmp /mnt/etc/sysconfig/kernel
	      fi
	  fi
    fi
fi

## Extract drivers.
if [ -d '/mnt/lib/modules/2.4.19-4GB' ]; then
     cp -f /update/3w-xxxx.o /mnt/lib/modules/2.4.19-4GB/kernel/drivers/scsi
fi

if [ -d '/mnt/lib/modules/2.4.19-64GB-SMP' ]; then
     cp -f /update/3w-xxxx.smp /mnt/lib/modules/2.4.19-64GB-SMP/kernel/drivers/scsi/3w-xxxx.o
fi

sync;sync;sync
#chroot /mnt
/mnt/sbin/mk_initrd /mnt >/tmp/mk_initrd.log 2>&1
if [ $? -eq 0 ]; then
     if [ -d /mnt/etc/rc.config.bak ]; then
          rm -f /mnt/etc/rc.config.bak
     fi
     if [ -d /mnt/etc/rc.config.tmp ]; then
	  rm -f /mnt/etc/rc.config.tmp
     fi
     if [ -d /mnt/etc/modules.conf.bak ]; then
          rm -f /mnt/etc/modules.conf.bak
     fi
fi
