#!/bin/sh -
#                               -*- Mode: Sh -*- 
# example.posthook.sh --- 
# Author           : Manoj Srivastava ( srivasta@glaurung.green-gryphon.com ) 
# Created On       : Mon Aug 11 14:00:58 2003
# Created On Node  : glaurung.green-gryphon.com
# Last Modified By : Manoj Srivastava
# Last Modified On : Sun Apr 12 17:16:52 2009
# Last Machine Used: anzu.internal.golden-gryphon.com
# Update Count     : 10
# Status           : Unknown, Use with caution!
# HISTORY          : 
# Description      : 
# 
# 
# This is an example of a script that can be run as a postinst hook,
# and manages the symbolic links in a manner similar to the kernel
# image default behaviour, except that the latest two versions (as
# determined by ls -lct) are kept. You can modify this script 
# 
# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Manoj Srivastava
# Copyright 2009 Darren Salt

set -e

# The dir where symlinks are managed
SYMLINKDIR=/

if [ $# -ne 2 ]; then
    echo Usage: $0 version location
    exit 2
fi

version="$1"
vmlinuz_location="$2"
vmlinuz_dir="$(dirname "$2")"
vmlinuz_dir="$(echo $vmlinuz_dir|sed -e 's/^\///')"

cd $SYMLINKDIR || exit 1

if [ -n "$DEB_MAINT_PARAMS" ]; then
    eval set -- "$DEB_MAINT_PARAMS"
    if [ -z "$1" ] || [ "$1" != "configure" -a "$1" != "remove" ]; then
        exit 0;
    fi
fi

rm -f vmlinuz vmlinuz.old vmlinuz-rd vmlinuz-rd.old initrd.img initrd.img.old 

# Create a temporary file safely
if [ -x /bin/tempfile ]; then
    outfile=$(tempfile -p outp -m 0600);
else
    set -e
    mkdir /tmp/kernel-image-$version-$$
    outfile=/tmp/kernel-image-$version-$$/output
fi

(cd "$vmlinuz_dir" && ls -ct vmlinuz-*) > $outfile

STD="$(head -n 1 $outfile |             sed 's/vmlinuz-//')" 
OLD="$(head -n 2 $outfile | tail -n 1 | sed 's/vmlinuz-//')" 

if [ "X$STD" = "X" ]; then
    exit 0;
fi

# If you want version-specific links, here's how to start
STD24="$(grep vmlinuz-2.4 $outfile | head -n 1 | sed 's/vmlinuz-//')" || true
OLD24="$(grep vmlinuz-2.4 $outfile | head -n 1 | tail -n 1 | sed 's/vmlinuz-//')" || true

STD25="$(grep vmlinuz-2.5 $outfile | head -n 1 | sed 's/vmlinuz-//')" || true
OLD25="$(grep vmlinuz-2.5 $outfile | head -n 1 | tail -n 1 | sed 's/vmlinuz-//')" || true

echo Booting $STD, old is $OLD

if [ -f "$vmlinuz_dir/"initrd.img-$STD ] ; then 
   ln -s "$vmlinuz_dir/"initrd.img-$STD initrd.img
   #ln -s "$vmlinuz_dir/"vmlinuz-$STD vmlinuz-rd
   ln -s "$vmlinuz_dir/"vmlinuz-$STD vmlinuz
else
   ln -s "$vmlinuz_dir/"vmlinuz-$STD vmlinuz
fi

# Don't create old link if STD and OLD are the same
if [ "X$OLD" != "X" -a "$STD" != "$OLD" ]; then
    if [ -f "$vmlinuz_dir/"initrd.img-$OLD ] ; then
	ln -s "$vmlinuz_dir/"initrd.img-$OLD initrd.img.old
	#ln -s "$vmlinuz_dir/"vmlinuz-$OLD vmlinuz-rd.old
	ln -s "$vmlinuz_dir/"vmlinuz-$OLD vmlinuz.old
    else
	ln -s "$vmlinuz_dir/"vmlinuz-$OLD vmlinuz.old
    fi
fi

# if [ "X$STD24" != "X" ]; then
#     if [ -f "$vmlinuz_dir/"initrd.img-$STD24 ] ; then 
# 	ln -s "$vmlinuz_dir/"initrd.img-$STD24 initrd24.img
# 	ln -s "$vmlinuz_dir/"vmlinuz-$STD24 vmlinuz24-rd
#     else
# 	ln -s "$vmlinuz_dir/"vmlinuz-$STD24 vmlinuz24
#     fi
# fi
# if [ "X$OLD24" != "X" ]; then
#     if [ -f "$vmlinuz_dir/"initrd.img-$OLD24 ] ; then
# 	ln -s "$vmlinuz_dir/"initrd.img-$OLD24 initrd24.img.old
# 	ln -s "$vmlinuz_dir/"vmlinuz-$OLD vmlinuz24-rd.old
#     else
# 	ln -s "$vmlinuz_dir/"vmlinuz-$OLD vmlinuz24.old
#     fi
# fi

if [ -f /etc/lilo.conf ] ; then
	lilo
fi

rm -f $outfile 
if [ -d /tmp/kernel-image-$version-$$ ]; then
    rmdir /tmp/kernel-image-$version-$$
fi

exit 0
