#!/bin/sh

case $1 in
    i386)
	ARCH=i386
	;;
    
    noarch)
	ARCH=noarch
	;;

    *)
	echo "Invalid architecture"
	exit 1
	;;
esac

RPMS=`echo *.$ARCH.rpm`

for rpm in $RPMS ; do
    if [ -r $rpm ] ; then
	LVL_FLD=`echo $rpm | awk -F- '{ print NF }'`
	VER_FLD=`expr $LVL_FLD - 1`
	PKG_END=`expr $VER_FLD - 1`

        PKG=`echo $rpm | cut -d- -f1-$PKG_END`

        PACKAGES=`echo $PKG*.$ARCH.rpm`
#       echo "Packages: $PACKAGES"
        VERSIONS=""
        for package in $PACKAGES ; do
            VER=`echo $package | cut -d- -f$VER_FLD`
            VERSIONS="$VERSIONS $VER"
        done
    
        NEWVER=`echo $VERSIONS | awk '{ for (i=NF; i>0; --i) { printf "%s\n", $i } }' | sort -n | tail -1l`
        VERSIONS=`echo $PKG-$NEWVER*.$ARCH.rpm`
#       echo "Latest versions: $VERSIONS"
        LEVELS=""
        for version in $VERSIONS ; do
            LVL=`basename $version .$ARCH.rpm | cut -d- -f$LVL_FLD`
            LEVELS="$LEVELS $LVL"
        done

        NEWLVL=`echo $LEVELS | awk '{ for (i=NF; i>0; --i) { printf "%s\n", $i } }' | sort -n | tail -1l`
        
        KEEP_PKG=$PKG-$NEWVER-$NEWLVL.$ARCH.rpm
#       echo "Lastest patch level: $KEEP_PKG"
        
#       echo "Removing:\c "
        for i in $PACKAGES ; do
            if [ ! "$i" = "$KEEP_PKG" ] ; then
                rm -f $i
#               echo "$i \c"
            fi
        done
#       echo ""
    fi

#    echo ""
done
