#! /bin/sh
#
# /sbin/installkernel  - written by tyson@rwii.com
#
# May 21, 2003 - agruen@suse.de
# * Adapted for SuSE and cleaned up.
#

: ${INSTALL_PATH:=/boot}
KERNEL_VERSION=$1
BOOTIMAGE=$2
MAPFILE=$3

case "$(uname -m)" in
    s390|s390x)
	BOOTFILE=image
	;;
    ppc|ppc64)
	BOOTFILE=vmlinux
	;;
    *)	BOOTFILE=vmlinuz
	;;
esac

#
# Move away files from versions up to SuSE Linux 8.2
#

if [ -f $INSTALL_PATH/${BOOTFILE} -a ! -L $INSTALL_PATH/${BOOTFILE} ]; then
    mv $INSTALL_PATH/${BOOTFILE} $INSTALL_PATH/${BOOTFILE}.old
fi
ln -sf ${BOOTFILE}-$KERNEL_VERSION $INSTALL_PATH/${BOOTFILE}

if [ -L $INSTALL_PATH/System.map ]; then
    rm -f $INSTALL_PATH/System.map
elif [ -f $INSTALLPATH/System.map ]; then
    mv $INSTALL_PATH/System.map $INSTALL_PATH/System.map.old
fi

#
# Move away files from after SuSE Linux 8.2
#

if [ -f $INSTALL_PATH/${BOOTFILE}-$KERNEL_VERSION ]; then
    mv $INSTALL_PATH/${BOOTFILE}-$KERNEL_VERSION \
	$INSTALL_PATH/${BOOTFILE}-$KERNEL_VERSION.old;
fi

if [ -f $INSTALL_PATH/System.map-$KERNEL_VERSION ]; then
    mv $INSTALL_PATH/System.map-$KERNEL_VERSION \
	$INSTALL_PATH/System.map-$KERNEL_VERSION.old; 
fi

#
# Install new files
#

cp -fp $BOOTIMAGE $INSTALL_PATH/${BOOTFILE}-$KERNEL_VERSION
cp -fp $MAPFILE $INSTALL_PATH/System.map-$KERNEL_VERSION
ln -sf ${BOOTFILE}-$KERNEL_VERSION $INSTALL_PATH/${BOOTFILE}

KERNTYPES=$(dirname $MAPFILE)/init/kerntypes.o
if [ -e $KERNTYPES ]; then
    cp -fp $KERNTYPES $INSTALL_PATH/Kerntypes-$KERNEL_VERSION
fi

#
# Generate initial ramdisk
#
[ -x /sbin/mk_initrd ] && : ${MKINITRD:=/sbin/mk_initrd}
[ -x /sbin/mkinitrd ]  && : ${MKINITRD:=/sbin/mkinitrd}
if [ -n "$MKINITRD" -a -d /lib/modules/$KERNEL_VERSION ]; then
    $MKINITRD -k ${BOOTFILE}-$KERNEL_VERSION -i initrd-$KERNEL_VERSION \
	      -b $INSTALL_PATH
else
    echo "You may need to create an initial ramdisk now."
fi

#
# Kick boot loader
#
if [ -x /sbin/new-kernel-pkg ]; then
    /sbin/new-kernel-pkg $KERNEL_VERSION
else
    echo "Please add kernel $KERNEL_VERSION to the boot manager now."
fi
