#! /bin/sh

umask 022
export PATH='/bin:/usr/bin:/usr/local/bin'

if [ ! -d $HOME/diet-pc/all ]; then
    cat 1>&2 <<EOF
$HOME/diet-pc/\$ARCH directories are missing - must run "dpc-pull" first!
EOF
    exit 1
fi
cd $HOME/diet-pc
mkdir -p mdcache

case "$1" in
purge)
    rm -rf $HOME/diet-pc/mdcache
    ;;
refresh|'')
    [ -s ipkg.conf ] && ALTCONF='-f ipkg.conf' || ALTCONF=
    for ARCH in `ipkg $ALTCONF -V 0 print_architecture | cut -f2 -d' '`; do
	for IPKG in $ARCH/*.ipk; do
	    [ $IPKG = "$ARCH/*.ipk" ] && break
	    PKG=`basename $IPKG | cut -f1 -d_`
	    ar p $IPKG control.tar.gz | tar xzOf - ./control >mdcache/$PKG.tmp
	    if [ -e mdcache/$PKG ]; then
		NEWV=`awk -F: '$1 == "Version" {print $2; exit}' \
			mdcache/$PKG.tmp`
		OLDV=`awk -F: '$1 == "Version" {print $2; exit}' mdcache/$PKG`
		if ipkg-compare-versions "$NEWV" '>' "$OLDV"; then
		    mv mdcache/$PKG.tmp mdcache/$PKG
		else
		    rm mdcache/$PKG.tmp
		fi
	    else
		mv mdcache/$PKG.tmp mdcache/$PKG
	    fi
	done
    done
    ;;
*)
    echo "Usage: $0 [purge|refresh]" 1>&2
    exit 2
    ;;
esac
exit 0
