#! /bin/sh

# This script updates the kernel and modules from your
#   current system. 
#

TOPDIR=`pwd`
KERNEL=$1
if test x${KERNEL} = x ; then
   KERNEL=`uname -r` 
fi

rm -rf roottree/dev
tar xfz dev.tar.gz -C roottree
if [ $? != 0 ] ; then
   echo "Update failed."
   exit 1
fi

#
# Update modules in root RAM disk
#  Keep kernel directory structure
#
echo "Updating modules in root RAM disk"
rm -rf roottree/lib/modules
mkdir -p roottree/lib/modules
cp -af /lib/modules/$KERNEL/ roottree/lib/modules/

# clean up just a bit removing stuff we do not support
rm -rf roottree/lib/modules/$KERNEL/build
rm -rf roottree/lib/modules/$KERNEL/kernel/drivers/bluetooth
rm -rf roottree/lib/modules/$KERNEL/kernel/drivers/pcmcia
rm -rf roottree/lib/modules/$KERNEL/kernel/drivers/video
rm -rf roottree/lib/modules/$KERNEL/kernel/drivers/isdn
rm -rf roottree/lib/modules/$KERNEL/kernel/sound
rm -rf roottree/lib/modules/$KERNEL/kernel/drivers/sound
rm -rf roottree/lib/modules/$KERNEL/kernel/drivers/crypto
rm -rf roottree/lib/modules/$KERNEL/kernel/drivers/net/wireless
rm -rf roottree/lib/modules/$KERNEL/kernel/drivers/net/appletalk
rm -rf roottree/lib/modules/$KERNEL/kernel/drivers/net/tokenring
rm -rf roottree/lib/modules/$KERNEL/kernel/drivers/net/irda
rm -rf roottree/lib/modules/$KERNEL/kernel/drivers/media
rm -rf roottree/lib/modules/$KERNEL/kernel/drivers/infiniband
rm -rf roottree/lib/modules/$KERNEL/kernel/drivers/crypto
rm -rf roottree/lib/modules/$KERNEL/kernel/net/appletalk
rm -rf roottree/lib/modules/$KERNEL/kernel/net/bluetooth
rm -rf roottree/lib/modules/$KERNEL/kernel/net/ipv6
rm -rf roottree/lib/modules/$KERNEL/kernel/net/irda
rm -rf roottree/lib/modules/$KERNEL/kernel/net/atm
rm -rf roottree/lib/modules/$KERNEL/kernel/net/bridge
rm -rf roottree/lib/modules/$KERNEL/kernel/net/sunrpc
rm -rf roottree/lib/modules/$KERNEL/kernel/net/wanrouter
rm -rf roottree/lib/modules/$KERNEL/kernel/net/tux



kernel="/boot/vmlinuz-$KERNEL"
echo "Coping $kernel to $TOPDIR/cdtree/boot/isolinux/vmlinuz"
cp -f $kernel $TOPDIR/cdtree/boot/isolinux/vmlinuz
if [ $? != 0 ] ; then
   echo "Could not find kernel. Update failed."
   exit 1
fi
if [ -e /boot/map ] ; then
   cp -f /boot/map $TOPDIR/cdtree/boot/isolinux/map
   if [ $? != 0 ] ; then
      echo "Update failed."
      exit 1
   fi
fi
