#!/bin/sh

exec 2>&1

if [ ! -d "$1" ]
then
	echo "Usage: $0 root-dir pkg-name [ pkg-name [ ... ] ]"
	exit 1
fi

d="$1" ; cd "$1" || exit 1 ; shift

for x
do
	if ! [ -f "var/adm/flists/$x" ] ; then
		echo "No such package: $x!"
		continue
	fi

	if [ "$x" = "rock-debug" ] ; then
		echo "Sorry, but 'rock-debug' is special -> don't remove!"
		continue
	fi
	
	echo "Removing package $x. Please wait ..."
	
	cut -f2 -d' ' var/adm/flists/$x > tmp/$$-pkgrm.tmp
	
	xargs rm -f < tmp/$$-pkgrm.tmp 2> /dev/null
	xargs rmdir -p < tmp/$$-pkgrm.tmp 2> /dev/null
	sed 's,/[^/]*$,\1,' < tmp/$$-pkgrm.tmp | \
		xargs rmdir -p 2> /dev/null

	rm -f tmp/$$-pkgrm.tmp
	worked="yes"
done

if [ "$worked " != "yes" ] ; then
	exit 1
fi

if [ $d != / ] ; then
	echo "export CHROOT_GOAL=$d"  > $d/tmp/$$.tmp
	echo "cd / ; . /etc/profile" >> $d/tmp/$$.tmp
	echo 'for x in /etc/setup.d/* ; do $x update ; done' >> $d/tmp/$$.tmp
	echo "umount /dev /proc"     >> $d/tmp/$$.tmp
	cd $d ; chroot . bin/sh tmp/$$.tmp ; rm -f /tmp/$$.tmp
else
	cd / ; for x in /etc/setup.d/* ; do $x update ; done
fi

exit 0
