#! /bin/sh
#
# src/unix/bin/java_wrapper.sh, a112, a112, a112-19970815 97/07/10

# ibm.12112
# Added getUnixPath to find out which directory contains standard
# Unix commands.  /bin and /usr/bin are tried.
#
getUnixPath()
{
    # First find the path for "echo" used in this function
    if [ -z $ECHO ]
    then
	ECHO=/bin/echo
    	if [ ! -x $ECHO ]
    	then
	    ECHO=/usr/bin/echo
    	    if [ ! -x $ECHO ] 
	    then 
	    	echo "$(basename $0): \"echo\" not found in /bin or /usr/bin" >&2
	    	exit 1
	    fi
    	fi
    	export ECHO
    fi
    # Now find the path for the given command
    if [ -x /bin/$1 ]
    then
        $ECHO /bin/$1
    elif [ -x /usr/bin/$1 ]
    then
        $ECHO /usr/bin/$1
    else
        $ECHO "$(basename $0): \"$1\" not found  in /bin or /usr/bin" >&2 
        exit 1
    fi
}
unset ENV

# Get the paths to the Unix commands		# ibm.12112
# Be carefulk not to path 'pwd' as we need the 	#ibm.12112
# builtin, not the command			# ibm.12112
unset ECHO					# ibm.12112
LS=`getUnixPath ls` && 				# ibm.12112
AWK=`getUnixPath awk` &&			# ibm.12112
GREP=`getUnixPath grep` &&			# ibm.12112
PRINTF=`getUnixPath printf` 			# ibm.12112
				
if [ $? -ne 0 ]					# ibm.12112
then						# ibm.12112
    exit 1					# ibm.12112
fi						# ibm.12112

# Set up default variable values if not supplied by the user.
if [ -z "$J_HOME" ] ; then
    PRG=`type -path $0` >/dev/null 2>&1
    # ibm.11436
    while [ -z "$PRG" ]; do
	PRG=`type -path $0` >/dev/null 2>&1
    done
    while [ -L "$PRG" ]; do
        src=`$LS -l $PRG | $AWK '{ print $NF }'`	# ibm.12112
	# ibm.11436
	while [ -z "$src" ] ; do
	    src=`$LS -l $PRG | $AWK '{ print $NF }'`	# ibm.12112
	done
        $PRINTF "%s"$src | $GREP -sq '^/' # ibm.11693	# ibm.12112
        if [ $? -eq 1 ]; then
	    PRG=${PRG%/*}/$src
        else
	    PRG=$src
	fi
    done
    [ -x $PRG ] ||
    {
	$PRINTF "ERROR: cannot find executable version of $0\n" # ibm.11693 ibm.12112
	exit 1
    }
    J_HOME=`""cd ${PRG%/*}/..; pwd`			# ibm.12112
    # ibm.11436
    while [ -z "$J_HOME" ]; do
	J_HOME=`""cd ${PRG%/*}/..; pwd`		# ibm.12112
    done
fi

if [ -z "$JAVA_HOME" ] ; then
    export JAVA_HOME
    JAVA_HOME=$J_HOME
fi

progname=${0##*/}
prog=$J_HOME/bin/linux/native_threads/${progname}

#
# For some programs like appletviewer, it is important that "." not be
# in the classpath by default (unless the user set the CLASSPATH
# explicitly). Applications that fit in this list are ones that load
# classes through a ClassLoader, where classes coming off . will end
# up being system classes. For now we know of only appletviewer.
#
NO_DOT_LIST="appletviewer"
DEFAULT_CLASSPATH="."
for excluded in ${NO_DOT_LIST}; do
    if [ ${excluded} = ${progname} ]; then
        DEFAULT_CLASSPATH="";
    fi
done

CLASSPATH="${CLASSPATH:-${DEFAULT_CLASSPATH}}"
if [ -z "${CLASSPATH}" ] ; then
    CLASSPATH="$JAVA_HOME/classes:$JAVA_HOME/lib/classes.jar:$JAVA_HOME/lib/rt.jar:$JAVA_HOME/lib/i18n.jar:$JAVA_HOME/lib/classes.zip:JAVA_HOME/lib/math.jar"
else
    CLASSPATH="$CLASSPATH:$JAVA_HOME/classes:$JAVA_HOME/lib/classes.jar:$JAVA_HOME/lib/rt.jar:$JAVA_HOME/lib/i18n.jar:$JAVA_HOME/lib/classes.zip:JAVA_HOME/lib/math.jar"
fi
export CLASSPATH

# Remove certain paths from LIBPATH, as they can cause library load problems.
# For security reasons, to load from current directory '.' must be explicitly specified.
#export LIBPATH
#LIBPATH=$J_HOME/lib/linux/native_threads`echo "${LD_LIBRARY_PATH}:${LIBPATH}"|\
#        $AWK -v RS=":" -v FS="[/ \n]*$" '$1!="/lib" && $1!="/usr/lib" &&
#          $1!="/usr/lib" && $1 != "" {$PRINTF ":%s",$1}'`		# ibm.12112
# PFE Linux - set LD_LIBRARY_PATH
export LD_LIBRARY_PATH
LD_LIBRARY_PATH=$J_HOME/lib/linux/native_threads:$LD_LIBRARY_PATH

if [ -f $prog ]
then
    eval exec $DEBUG_PROG $prog $opts '"$@"'
else
    $ECHO >&2 "$progname was not found in ${prog}"		# ibm.12112
    exit 1
fi
