#!/bin/bash

get_ver() {
	VERSION=`dpkg -s $PKG | grep Version: | sed -e 's/Version: //g'`
}

comp_ver() {
	dpkg --compare-versions $TEST1 gt $TEST2
	RESULT=$?
}

comp_ver_eq() {
	dpkg --compare-versions $TEST1 eq $TEST2
	RESULT=$?
}

CURVER=$( dpkg -l 'linux-image*'| grep `uname -r` | sed "s/^[^ ]* [^ ]* \([^ ]*\).*/\1/" )

INSTALLED=`for i in \`dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'\` ; do echo -n "$i "; done`

NEWEST=$CURVER

for i in $INSTALLED; do
	PKG=$i
	get_ver
	TEST1=$VERSION
	PKG=$NEWEST
	get_ver
	TEST2=$VERSION
	comp_ver
	if [ $RESULT == 0 ]; then
		NEWEST=$i
	fi
done

REMOVE=""

for i in $INSTALLED; do
	PKG=$i
	get_ver
	TEST1=$VERSION
	PKG=$CURVER
	get_ver
	TEST2=$VERSION
	comp_ver_eq
	if [ $RESULT == 0 ]; then
		continue
	fi
	PKG=$NEWEST
	get_ver
	TEST2=$VERSION
	comp_ver_eq
	if [ $RESULT == 0 ]; then
		continue
	fi
	REMOVE="$REMOVE $i"
done

echo $REMOVE

exit 0
