#!/bin/sh
patch_rc() {
   if [ ! -f /etc/rc.d/rc.sysinit.orig ] ; then
      cp -f /etc/rc.d/rc.sysinit /etc/rc.d/rc.sysinit.orig
   fi

   if ! grep 'depmod -Aq' /etc/rc.d/rc.sysinit >/dev/null 2>&1 ; then
         sed -e '/depmod -A/s/depmod -A/depmod -Aq/' /etc/rc.d/rc.sysinit >/tmp/.rc.sysinit.tmp
         mv -f /tmp/.rc.sysinit.tmp /etc/rc.d/rc.sysinit
         chmod 755 /etc/rc.d/rc.sysinit
   fi
}

ok='0'
echo -n "Promise SATA150 Driver Installation."
if [ ! -f modules.cgz ]; then
   echo "failed"
   echo "This is not SATA150 Driver Disk for RedHat Linux"
   exit 1
fi

if [ -d /tmp/.ut_mod ]; then
   rm -rf /tmp/.ut_mod
fi
mkdir -p /tmp/.ut_mod

cp modules.cgz /tmp/.ut_mod/
cd /tmp/.ut_mod
if [ ! -f modules.cgz ]; then
   echo "failed"
   echo "Runtime error..setup abort!!(disk full or no permission?)"
   exit 1
fi
echo -n "."

zcat modules.cgz |cpio -id >/dev/null 2>&1
if [ $? -ne 0 ]; then
   echo "failed"
   echo "Runtime error..setup abort!!(corrupt file)"
   exit 1
fi
echo -n "."

for i in `\ls -d *`
do
    if [ ! -d /lib/modules/${i} ]; then
       continue
    fi
    ok='1'
    
    minor=`echo ${i} | awk -F. '{print $2}'`
    if [ ${minor} -eq 2 ]; then
       cp -f ${i}/pdc-ultra.o /lib/modules/${i}/scsi/ >/dev/null 2>&1
    elif [ ${minor} -eq 4 ]; then
       cp -f ${i}/pdc-ultra.o /lib/modules/${i}/kernel/drivers/scsi/ >/dev/null 2>&1
    fi
    echo -n "."

done

if [ ${ok} -ne '1' ] ; then
   echo "failed"
   echo "No suitable driver found"
   echo "make sure driver disk or kernel version is right"
   exit 1
fi

if ! lsmod|grep pdc-ultra >/dev/null 2>&1 ; then
   dmesg -n4 >/dev/null 2>&1
   depmod -aq >/dev/null 2>&1
   modprobe pdc-ultra >/dev/null 2>&1
fi
echo -n "."

patch_rc
echo -n "."

echo "done"

RC=`grep 'rc.modules$' /etc/rc.d/rc.sysinit`
if ! grep '^insmod pdc-ultra' ${RC} >/dev/null 2>&1; then
   echo -n "Do you want to load pdc-ultra driver when linux booting everytime?(Y/N) "
   read key

   case ${key} in
       Y|y)
           echo "" >> `echo ${RC}`
           echo "#Promise SATA150 Driver" >> `echo ${RC}`
           echo -n 'if [ `uname -r |awk -F. ' >> `echo ${RC}`
           echo -n "'" >> `echo ${RC}`
           echo -n '{print $2}' >> `echo ${RC}`
           echo -n "'" >> `echo ${RC}`
           echo '` -eq 4 ]; then' >> `echo ${RC}`
           echo "   insmod scsi_mod >/dev/null 2>&1" >> `echo ${RC}`
           echo "   insmod sd_mod >/dev/null 2>&1" >> `echo ${RC}`
           echo "fi" >> `echo ${RC}`
           echo "insmod pdc-ultra >/dev/null 2>&1" >> `echo ${RC}`
           chmod 755 ${RC}
           ;;
       N|n)
           echo ""
           echo "The pdc-ultra driver module can be loaded automatically"
           echo "by appending the following command to ${RC}"
           echo ""
           echo "   insmod scsi_mod"
           echo "   insmod sd_mod"
           echo "   insmod pdc-ultra"
           ;;
       *)
         echo ""
         ;;
   esac
fi
echo ""
echo "setup is complete"
echo ""
echo "-------------------------------"
echo "Promise Technology, Inc (C)2002"
