#!/bin/sh

/usr/bin/find /usr/portage/* > /tmp/portage.orig 2>&1
/usr/bin/emerge sync > /dev/null 2>&1
/usr/bin/find /usr/portage/* > /tmp/portage.new 2>&1
/usr/bin/diff /tmp/portage.orig /tmp/portage.new > /tmp/portage.diff
/bin/rm /tmp/portage.orig
/bin/rm /tmp/portage.new

/usr/bin/emerge -uDp world > /tmp/portage.pkg 2>&1
/usr/bin/emerge -uDf world > /dev/null 2>&1
#/usr/bin/emerge -uD world > /tmp/portage.upd 2>&1 || ( /bin/echo "The following error occurred:"; /bin/tail -n 100 /tmp/portage.upd ) > /tmp/portage.fail
#/bin/rm /tmp/portage.upd

#[ -e /tmp/portage.fail ] && /bin/echo "The following updates were attempted:" || /bin/echo "The following packages were successfully updated:"
/bin/echo "The following updates are available:"
/bin/grep -F "[" /tmp/portage.pkg
/bin/echo
/bin/rm /tmp/portage.pkg

#[ -e /tmp/portage.fail ] && ( /bin/echo "The following error occurred:"; grep -F "!!!" /tmp/portage.fail; /bin/rm /tmp/portage.fail )
#/bin/echo

/bin/echo "The following files have been added to portage:"
/bin/grep ">" /tmp/portage.diff | grep -v /usr/portage/metadata
/bin/echo

/bin/echo "The following files have been removed from portage:"
/bin/grep "<" /tmp/portage.diff | grep -v /usr/portage/metadata
/bin/echo

/bin/rm /tmp/portage.diff

