#! /bin/sh
#
# /sbin/installkernel  - written by tyson@rwii.com
#
# May 21, 2003 - agruen@suse.de
# * Adapted for SuSE and cleaned up.
#
# This file is kept in the following CVS repository:
#
# $Source: /suse/yast2/cvsroot/mkinitrd/installkernel,v $
# $Revision: 1.7 $
#

: ${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

#
# Update boot loader
#
if [ -x /sbin/update-bootloader ]; then
    opt_initrd=
    [ -e /boot/initrd-$KERNEL_VERSION ] \
	&& opt_initrd="--initrd /boot/initrd-$KERNEL_VERSION"
    /sbin/update-bootloader --image /boot/$BOOTFILE-$KERNEL_VERSION \
	$opt_initrd --add
fi
/sbin/new-kernel-pkg $KERNEL_VERSION
