#!/bin/bash

SYNC=0
DEEP=''
ASK='-q'
PRETEND=''

for arg in "$@"; do
	case "$arg" in
	sync)
		SYNC=1
		;;
	deep)
		DEEP='-D'
		;;
	ask)
		ASK='-avt'
		;;
	esac
done

if [ "$SYNC" -ge 1 ]; then
	echo -n 'Synchronizing the portage tree... '
	emerge -q --sync || exit 1
	echo 'done.'
fi

echo -n 'Updating portage... '
emerge $ASK $DEEP -uN portage || until emerge --resume --skipfirst; do :; done
echo 'done.'

echo -n 'Updating "world"... '
emerge $ASK $DEEP -uN world || until emerge --resume --skipfirst; do :; done
echo 'done.'

echo -n 'Correcting reverse dependency linkage... '
revdep-rebuild -q -i -X || until emerge --resume --skipfirst; do :; done
echo 'done.'

echo -n 'Updating (E)merge (I)nde(X) database... '
update-eix -q || exit 2
echo 'done.'
