#!/bin/sh
#
# Copyright (c) 2004 by Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#

#set -x


#########################################
# debug
# 
#########################################
debug() {
    if [ "x"$VERBOSE != "x" ] ; then
	echo $1
    fi
}

#########################################
# remove_link
#
# remove exiting link at dest if necessary
# create the link
# set the owner id ans group of the link 
#     that just have been created.
# source: $1 
# dest: $2
# owner id of the link: $3 and 
# owner group of the link:$4
#########################################
remove_link () {

rc=0

src=$1
dest=$2
USER=$3
GROUP=$4

# if the dest link already exists: remove it
if [ -h $dest ]; then 
    rm -f $dest
    if [ $? -ne 0 ];then 
	rc=1
	echo "Removal of $dest link failed"
    fi
fi
return $rc
}

#########################################
# mk_remove_links
# 
#########################################
mk_remove_links() {
	# adds the links under <server root>/java/jars/dps522_en.jar by the new jar file name
	jar_list=`(cd  $VAR_ADM/java/jars/ ; ls dps522_*.jar  2> /dev/null)`

	if [ x"$jar_list" != x ] ; then

	    for fileName in ${jar_list}; do
		dest=$VAR_ADM/java/jars/$fileName
		localsrc=$LOCAL_USR_ADM/java/jars/$fileName
		rm -f $dest
		if [ $? -ne 0 ]; then
		    rc=1
		fi
	    done
	fi
	#create sym link for dps522_en.jar file	
	dest=$VAR_ADM/java/jars/dps522_en.jar
	localsrc=$LOCAL_USR_ADM/java/jars/dps522_en.jar 
	ln -s $localsrc $dest $SYSTEMUSER $SYSTEMGROUP	
	return $rc
}

#########################################
# getPkgBase
#
# sets PKGNAME variable 
##########################################
get_pkgname() {
    debug "get_pkgname $1"
    PKG=$1
    pkginfo -R $ROOTDIR $PKG.\* 1>/dev/null 2>&1
    if [ $? -ne 0 ]; then
	debug "No package $1 installed"
	return 1
    else
	PKGNAME=`pkginfo -R ${ROOTDIR} $1.\* | awk '{print $2}'`
    fi
    debug "get_pkgname returns $PKGNAME"
    return 0
}


#########################################
# pkg_get_basedir
#
# set PKGBASEDIR variable 
##########################################
pkg_get_basedir() {
    debug "get_basedir $1"    
    get_pkgname $1
    if [ $? -ne 0 ]; then
	return 1
    else
	LOCAL_BASEDIR=`pkginfo -R ${ROOTDIR} -r $PKGNAME`
	if [ ${ROOTDIR} != '/' ] ; then
	    PKGBASEDIR=${ROOTDIR}/${LOCAL_BASEDIR}
	else
	    PKGBASEDIR=${LOCAL_BASEDIR}
	fi
    fi
    debug "get_basedir returns $PKGBASEDIR"
    return 0
}


#########################################
# set_env_vars
#
#########################################
set_env_vars () {
   pkg_get_basedir SUNWdpsg
   AS_BASEDIR=$PKGBASEDIR
   LOCAL_AS_BASEDIR=$LOCAL_BASEDIR
   USR_ADM=$AS_BASEDIR/usr/sadm/mps/admin/v5.2
   ETC_ADM=$AS_BASEDIR/etc/mps/admin/v5.2

   LOCAL_USR_ADM=$LOCAL_AS_BASEDIR/usr/sadm/mps/admin/v5.2
   LOCAL_ETC_ADM=$LOCAL_AS_BASEDIR/etc/mps/admin/v5.2

   pkg_get_basedir SUNWtls
   TLS_LIBDIR=$PKGBASEDIR/usr/lib/mps/secv1
   LOCAL_TLS_LIBDIR=$LOCAL_BASEDIR/usr/lib/mps/secv1

   pkg_get_basedir SUNWldk
   LDK_LIBDIR=$PKGBASEDIR/usr/lib/mps  
   LOCAL_LDK_LIBDIR=$LOCAL_BASEDIR/usr/lib/mps  

   pkg_get_basedir SUNWpr
   PR_LIBDIR=$PKGBASEDIR/usr/lib/mps/secv1
   LOCAL_PR_LIBDIR=$LOCAL_BASEDIR/usr/lib/mps/secv1

   pkg_get_basedir SUNWsasl
   SASL_LIBDIR=$PKGBASEDIR/usr/lib/mps/sasl2
   LOCAL_SASL_LIBDIR=$LOCAL_BASEDIR/usr/lib/mps/sasl2

   pkg_get_basedir SUNWicu
   ICU_LIBDIR=$PKGBASEDIR/lib/
   LOCAL_ICU_LIBDIR=$LOCAL_BASEDIR/lib/

   VAR_ADM=$AS_BASEDIR/var/mps/serverroot
   if [ -f $ETC_ADM/shared/config/serverroot.conf ]; then
      VAR_ADM=$ROOTDIR/`cat $ETC_ADM/shared/config/serverroot.conf`
   fi

   LOCAL_VAR_ADM=$LOCAL_AS_BASEDIR/var/mps/serverroot
   if [ -f $ETC_ADM/shared/config/serverroot.conf ]; then
      LOCAL_VAR_ADM=`cat $ETC_ADM/shared/config/serverroot.conf`
   fi

}

set_env_vars
mk_remove_links
