#!/bin/sh
#
#pragma ident	"@(#)seamfixconfig	1.2	99/11/19 SMI"
#
# Copyright (c) 1999 by Sun Microsystems, Inc.
# All rights reserved.
#

# usage: seamfixconfig [ response_dir ]

if [ "$PKG_INSTALL_ROOT" != "" ]
then
	pkgcmd_opts="-R $PKG_INSTALL_ROOT"
else
	pkgcmd_opts=""
fi

cmd_dir=`dirname $0`
#
# In case the script from the wrong architecture is run,
# we compensate.
#
pkg_dir=$cmd_dir/../../`uname -p`/Packages
resp_dir=$cmd_dir/../../.install/pkgutil/siteconfig_response

if [ $# -gt 0 ]
then
	resp_dir=$1
fi

if [ ! -d $pkg_dir ]
then
	# this will generate a message meaningful to the locale.
	cd $pkg_dir
	exit 1
fi

if [ ! -d $resp_dir ]
then
	# this will generate a message meaningful to the locale.
	cd $resp_dir
	exit 1
fi

clnt_pkgs="SUNWkr5cl SUNWkr5sv"
pkgs="$clnt_pkgs SUNWkr5sl SUNWkr5ma"

for i in $pkgs ;
do

	if [ ! -d $pkg_dir/$i/install ]
	then
		# this will generate a message meaningful to the locale.
		cd $pkg_dir/$i/install
		exit 1
	fi

	if [ ! -f $resp_dir/$i ]
	then
		# this will generate a message meaningful to the locale.
		cat < $resp_dir/$i
		exit 1
	fi

done

for i in $clnt_pkgs ;
do

	#
	# If client packages aren't installed, then this is bad.
	#
	msg=`pkginfo $pkgcmd_opts $i 2>& 1`
	if [ $? -ne 0 ]
	then
		echo $msg
		exit 1
	fi
done

plist=""

# Gather list of packages that we will run postinstall on

for i in $pkg_dir/*/install/request ;
do
	t=`dirname $i`
	postinstall=$t/postinstall

	if [ ! -f $postinstall ]
	then
		cat < $postinstall
		exit 1
	fi

	t=`dirname $t`
	pkg=`basename $t`

	if [ ! -f $resp_dir/$pkg ]
	then
		cat < $resp_dir/$pkg
		exit 1
	fi  

	if pkginfo $pkgcmd_opts -q $pkg ;
	then
		plist="$plist $pkg"
	fi
done

echo $0: '\c'
#
# Finally ready to run postinstall scripts
#
for i in $plist ;
do
	echo $i '\c'
	# Run the response and postinstall scripts in a subshell
	# since the response script modifies environment
	(
		. $resp_dir/$i
		PAM_FIX_EDIT=1
		INETD_FIX_EDIT=1
		. $pkg_dir/$i/install/postinstall
	)
	if [ $? -ne 0 ]
	then
		exit $?
	fi
done
echo
exit 0
