#!/bin/sh

set -e

if [ $# -eq 3 ] || [ $# -eq 4 ]; then
	kernelrelease="$1"
	bootimage="$2"
	mapfile="$3"
	destdir="${4:-/boot}"
else
	echo "Usage: installkernel <version> <image> <System.map> <directory>"
	exit 1
fi


mapdir=$(dirname "$mapfile")
config="$mapdir"/.config


suffix=
flavor=${kernelrelease##*[0-9]-}
if [ "$flavor" != "$kernelrelease" ]; then
	suffix=-$flavor
fi

for i in vmlinuz${suffix} System.map${suffix} config${suffix}; do
	if [ -e "$destdir"/$i ]; then
		cp "$destdir"/$i "$destdir"/$i.old
	fi
done

cp "$bootimage" "$destdir"/vmlinuz${suffix}
cp "$mapfile" "$destdir"/System.map-${kernelrelease}
cp "$config" "$destdir"/config-${kernelrelease}

destdir_root="${destdir%/boot}"
if [ "$destdir_root" != "$destdir" ]; then
	moddir="$destdir_root/lib/modules/$kernelrelease"
	mkdir -p "$moddir"
	if ! [ -e "$moddir"/kernel-suffix ]; then
		echo "$suffix" > "$moddir"/kernel-suffix
	fi
fi

exit 0
