#!/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
}

#########################################
# make_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
#########################################
make_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

# create the link
ln -s $src $dest

if [ $? -ne 0 ];then 
    rc=1
    echo "Creation of $dest link failed"
else
    if [ "x${USER}" != x ] && [ "x${GROUP}" != x ]; then
	# set the owner id and group of the link.
	chown -h $USER:$GROUP $dest
	    if [ $? -ne 0 ];then 
		rc=1
		echo "Update of $dest link owner failed"
	    fi
    fi
fi

return $rc

}

#########################################
# create_links
# 
#########################################
create_links() {
	# adds the links under <server root>/java/jars/dps522_en.jar by the new jar file name
	jar_list=`(cd  $USR_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

		make_link $localsrc $dest $SYSTEMUSER $SYSTEMGROUP
		if [ $? -ne 0 ]; then
		    rc=1
		fi
	    done
	fi
        
	
	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
create_links
