# This script deletes the used backout data for a patch package
# and removes the deletes file entries.
#
# package format options.
#
#       @(#)patch_postinstall 1.1 95/07/31 SMI
#
# Copyright (c) 1995 by Sun Microsystems, Inc.
# All rights reserved
#

PATH=/usr/sadm/bin:$PATH
THIS_DIR=`dirname $0`

Our_Deletes=$THIS_DIR/deletes

#
# Delete the used backout data
#
if [ -f $Our_Deletes ]; then
	cat $Our_Deletes | while read path; do
		if valpath -l $path; then
			Client_Path=`echo "$CLIENT_BASEDIR/$path" | sed s@//@/@`
		else	# It's an absolute path
			Client_Path=$path
		fi
		rm `removef $PKGINST $Client_Path`
	done
	removef -f $PKGINST

	rm $Our_Deletes
fi

#
# Remove the deletes file.
#
rm -r $PKGSAV/$ACTIVE_PATCH

#
# Unobsolete the stuff this one obsoleted.
#
cd ${PKG_INSTALL_ROOT:-/}
cd var/sadm/pkg

INSTALLED_BASE=` pkginfo | nawk '
	{ printf ("%s ", $2) }
	END { printf("\n") } '`

for pkg in $INSTALLED_BASE; do
	Patchlist=`pkgparam $pkg PATCHLIST`
	for Patchno in $Patchlist; do
		if [ -f $pkg/save/$Patchno/obsolete ]; then
			egrep $SUNW_PATCHID $pkg/save/$Patchno/obsoleted_by
			if [ $? -eq 0 ]; then
				cat $pkg/save/$Patchno/obsoleted_by | nawk -v patchno=$SUNW_PATCHID '
					$0 ~ patchno	{ next; }
					{ print; } ' > $pkg/save/$Patchno/obsoleted_by.new
				if [ -s $pkg/save/$Patchno/obsoleted_by.new ]; then
					mv $pkg/save/$Patchno/obsoleted_by.new $pkg/save/$Patchno/obsoleted_by
				else
					rm $pkg/save/$Patchno/obsoleted_by.new $pkg/save/$Patchno/obsoleted_by
					mv $pkg/save/$Patchno/obsolete $pkg/save/$Patchno/undo
				fi
			fi
		fi
	done
done

exit 0
