#!/bin/sh
###################################################################
#
# Copyright (c) 03/16/05 Sun Microsystems, Inc. All Rights Reserved.
# pragma ident  "@(#)es-lhwebconsole	1.5 05/03/16 Sun Microsystems"
#
####################################################################



# Will install the Lockhart2.2 packages. The
# actual installation of the LH is left to the
# setup script of LH. The LH will install the
# required version of the webserver as well
# Lockhart installation itself doesn't seem to
# support any relocation. As a result the same
# cannot be supported here. If the SUNWmcon pkg
# is present then lockhart is already installed
# so no need to re-install the same.
#
createAdminFile() {

    ADMIN=/var/run/admin
    $CMD_RM -f ${ADMIN}
    $CMD_ECHO "mail=" >> ${ADMIN}
    $CMD_ECHO "instance=overwrite" >> ${ADMIN}
    $CMD_ECHO "partial=nocheck" >> ${ADMIN}
    $CMD_ECHO "runlevel=nocheck" >> ${ADMIN}
    $CMD_ECHO "idepend=nocheck" >> ${ADMIN}
    $CMD_ECHO "rdepend=nocheck" >> ${ADMIN}
    $CMD_ECHO "space=nocheck" >> ${ADMIN}
    $CMD_ECHO "setuid=nocheck" >> ${ADMIN}
    $CMD_ECHO "conflict=nocheck" >> ${ADMIN}
    $CMD_ECHO "action=nocheck" >> ${ADMIN}
    export ADMIN
}


doWebconsoleInstall() {

    relocDir="${RELOCATED_ROOT}"
    WBCONSOLE_INSTALLED_PKGLIST=""
    for pkg in ${WBCONSOLE_PKGLIST}
    do
        echolog 'Web Console packages which will be installed $2' "$WBCONSOLE_PKGLIST"
        if [ -d "$SRC_DIR/Lockhart2.2.3/$ARCH/Solaris_$OSVERS/$pkg" ] ; then
            packagePath=$SRC_DIR/Lockhart2.2.3/$ARCH/Solaris_$OSVERS
        else
            packagePath=$SRC_DIR/Lockhart2.2.3/$ARCH/Common
        fi

	PKGADD_PARAM="-a $ADMIN -d $packagePath"
        if [ "$relocDir" = "" -o "$relocDir" = "/" ] ; then 
	    [ `${CMD_UNAME} -r` = "5.10" ] && PKGADD_PARAM="-G -a $ADMIN -d $packagePath"
            $CMD_PKGADD $PKGADD_PARAM $pkg 2>&1 | $CMD_TEE -a $LOGFILE
            ret=$?
        else
            $CMD_PKGADD -R $relocDir $PKGADD_PARAM $pkg 2>&1 | $CMD_TEE -a $LOGFILE
            ret=$?
        fi

        if [ $ret -eq 0 ] ; then
            WBCONSOLE_INSTALLED_PKGLIST="${pkg},${WBCONSOLE_INSTALLED_PKGLIST}"
        else
            echolog 'Installation of Web Console package failed for $2' "$pkg"  
            return 1
        fi
    done
    WBCONSOLE_INSTALLED_PKGLIST=`$CMD_ECHO $WBCONSOLE_INSTALLED_PKGLIST | $CMD_SED -e "s/,$//"`
    export WBCONSOLE_INSTALLED_PKGLIST
    $CMD_RM -rf ${ADMIN}
    unset ADMIN
    return 0
}



doJavaHelpInstall() {

    # We need 2.0 or better and upgrades do not behave so
    # remove the existing packages before we install jh 2.0

    # Map min version we require to a number we can do a
    # numerical comparison on.
    relocDir="${RELOCATED_ROOT}"
    weWant=`versionString2Num 2.0`

    # remove in reverse order of installation
    for helpPkg	 in `$CMD_ECHO $JAVAHELP_PKGS | \
	$CMD_AWK '{ for (i = NF; i > 0; --i) print $i }'`
    do
      	# see how many instances of each javahelp pkg are on the system
        if [ "$relocDir" = "" -o "$relocDir" = "/" ] ; then
        	pkginsts=`$CMD_PKGINFO  "${helpPkg}" 2>/dev/null | $CMD_AWK '{print $2}'`
        else
        	pkginsts=`$CMD_PKGINFO -R "$relocDir" "${helpPkg}" 2>/dev/null | $CMD_AWK '{print $2}'`
        fi
	for pkginst in ${pkginsts}
	do
            # Get installed version, and map to a number we can do a
            # numerical comparison on.
            if [ "$relocDir" = "" -o "$relocDir" = "/" ] ; then
               version=`env LANG=C LC_ALL=C $CMD_PKGPARAM $pkginst VERSION \
		| $CMD_AWK -F',' '{print $1}'`
         
            else
               version=`env LANG=C LC_ALL=C $CMD_PKGPARAM -R "$relocDir" $pkginst VERSION \
		| $CMD_AWK -F',' '{print $1}'`
            fi
            weHave=`versionString2Num $version`
            # if the pkg instance we have is less than 2.0
            # remove the package
            if [ ${weHave} -lt ${weWant} ]; then
		  $CMD_PKGRM -n -a ${ADMIN} ${pkginst}
            fi
	done
    done

    for pkg in ${JAVAHELP_PKGS}
    do
	if [ -d "$SRC_DIR/Lockhart2.2.3/$ARCH/Common/$pkg" ] ; then
            packagePath=$SRC_DIR/Lockhart2.2.3/$ARCH/Common
	fi
        if [ "$relocDir" = "" -o "$relocDir" = "/" ] ; then
            $CMD_PKGADD -a $ADMIN -d $packagePath $pkg 2>&1 | $CMD_TEE -a $LOGFILE
            ret=$?
	else
           $CMD_PKGADD -R $relocDir -a $ADMIN -d $packagePath $pkg 2>&1 | $CMD_TEE -a $LOGFILE

           ret=$?
	fi
    done

    if [ "$relocDir" = "" -o "$relocDir" = "/" ] ; then
        jHelp=`$CMD_PKGINFO -r SUNWjhrt`
    else
        jHelp=`$CMD_PKGINFO -R $relocDir -r SUNWjhrt`
    fi 
    jHelp="$jHelp/j2se/opt/javahelp"
    JAVAHELP_HOME=jHelp
    export JAVAHELP_HOME
}


installWebconsole() {

    curDir=`$CMD_PWD`
    cd ${SRC_DIR}/Lockhart2.2.3/${ARCH}
    ./setup -f >> $LOGFILE
    ret=$?
    cd  $curDir
    return $ret

}


installJavaHelp() {

    # Install the JavaHelp packages now.

    createAdminFile
    doJavaHelpInstall
    ret=$?
    return $ret

}

