#!/bin/ksh
#
# ident "@(#)functions 1.39	06/05/19 SMI"
#
# Copyright 2004 Sun Microsystems, Inc.	 All rights reserved.
# Use is subject to license terms.
#

resolve_link() {
	prg=$1

	while [ -h "$prg" ]; do
		ls=$(/bin/ls -ld $prg)
		link=$(/bin/expr "$ls" : '^.*-> \(.*\)$')
		if /bin/expr "$link" : '^/' > /dev/null; then
			prg2=$link
		else
			prg2=${prg%/*}/$link
		fi
		prg=$(whence $prg2)
	done

	echo $prg | /bin/sed -e 's,[^/][^/]*//*\.\./,,'
}

if [[ -n "${PKG_INSTALL_ROOT}" && "${PKG_INSTALL_ROOT}" != "/" ]]; then
	MINIROOT=1
fi

#
# Try to find a Java2 runtime.
#

JAVA_LOC="${JAVA_HOME:+${JAVA_HOME}/bin/java} /usr/java/bin/java $(whence java)" 

unset JAVA_HOME
for j in $JAVA_LOC; do
	dir=$(resolve_link $j)
	dir=${dir%/*/*}
	dir=${dir%/jre}
	if [ -d $dir -a -d $dir/jre -a -x $dir/bin/java ]; then
		jversion=$($dir/bin/java -version 2>&1 | head -1)
		case $jversion in
		"java version \"1.5"*)
			JAVA_HOME=$dir
			export JAVA_HOME
			break ;;
		esac
	fi
done

if [[ -z "${JAVA_HOME}" && -z "${MINIROOT}" ]]; then
	echo "No suitable Java runtime found in any of the following directories:"
	echo "        \c"
	for j in $JAVA_LOC; do echo "${j%/*/*} \c"; done; echo
	echo "Please set the JAVA_HOME environment variable to point to a Java 2"
	echo "installation and run $0 again."
	exit 1
fi

JAVA=${JAVA_HOME}/bin/java


#
# Can we connect to an X display?
#

if /usr/openwin/bin/xdpyinfo > /dev/null 2>&1; then
	X_DISPLAY=true;
else
	X_DISPLAY=false;
fi

#
# Set up some jar variables
#

JARPATH=${VIPER_HOME}/lib
VIPER_EXT=${JARPATH}/preload

VIPER_JH=${VIPER_EXT}/jh.jar
VIPER_XML=${VIPER_EXT}/xml.jar
VIPER_JSDK=${VIPER_EXT}/jsdk21.jar
VIPER_API=${JARPATH}/smcapi.jar
CDE_XSESSION=/usr/dt/classes/xservices.jar
CONSOLE_RT=${JARPATH}/console_rt.jar
SERVER_RT=${JARPATH}/server_rt.jar
CONSOLE_HS=${JARPATH}/UserGuide.jar
SDKGUIDE_HS=${JARPATH}/SDKGuide.jar
CIMAPI=${VIPER_EXT}/cimapi.jar
SUNWBEM=${VIPER_EXT}/sunwbem.jar
WBEM=${VIPER_EXT}/wbem.jar

AUDITLIB=/usr/lib/audit
AUDITJAR=${AUDITLIB}/Audit.jar


#
# Set a few paths
#

if [[ ${VIPER_HOME} = ${BASEDIR%/}/usr/sadm/lib/smc ]]; then
	SMC_RTHOME=${BASEDIR%/}/var/sadm/smc
else
	SMC_RTHOME=$VIPER_HOME
fi

export CLASSPATH=${VIPER_XML}:${VIPER_HOME}:${VIPER_API}
# ==========  Hack to get WbemClient properties file =======
# Put the WBEM home directory on the class path for now.
WBEM_EXT=/usr/sadm/lib/wbem/extension
CLASSPATH=${CLASSPATH}:${WBEM_EXT}
#
# End of hack
for jar in ${VIPER_EXT}/*.jar ${VIPER_EXT}/*.zip; do
	[[ -f $jar ]] && CLASSPATH=${CLASSPATH}:$jar
done

export LD_LIBRARY_PATH=${VIPER_HOME}/lib:${SMC_RTHOME}/lib:${AUDITLIB}
export PATH=/usr/bin

#
# Look for arguments to Java (-J-XXX), pull them out of the regular
# argument list, and put them in a separate list.  Keep everything else and
# put it back to be read as the original set of parameters by the Java
# code.
#

for arg in "$@"; do
	[ "$arg" = "--" ] && break
	njarg=${arg##-J*}
	jarg=${arg#-J}
	if [ -z "$njarg" ]; then
		set -A JAVAARGS -- "${JAVAARGS[@]}" "$jarg"
	else
		set -A newargs -- "${newargs[@]}" "$njarg"
	fi
	shift
done

set -- "${newargs[@]}" "$@"
