#!/usr/bin/ksh
#
# Copyright 2002 Sun Microsystems, Inc.
# All rights reserved.
#
#pragma ident "@(#)$Id: sunic,v 1.1 2004/07/26 16:09:33 js137975 Exp $"


#check for the existence of java
OLDIFS=$IFS
IFS=:
JAVA_PATH=""

INCK_HOME=opt/SUNWinck
INCK_ETC=etc/${INCK_HOME}
INCK_VAR=var/${INCK_HOME}
ICIS_HOME=opt/SUNWicis
ICIS_ETC=etc/${ICIS_HOME}
ICIS_VAR=var/${ICIS_HOME}
EKE_HOME=opt/SUNWeke

TEXTDOMAIN=SUNW_INCK_CMD
export TEXTDOMAIN

DEBUG=yes
export DEBUG

TEXTDOMAINDIR=${INCK_HOME}/lib/locale
export TEXTDOMAINDIR

if [ "x${JAVA_HOME}" != "x" ] && [ -f ${JAVA_HOME}/bin/java ]
	then		
		JAVA_VERSION=`${JAVA_HOME}/bin/java -version 2>&1 | head -1 | awk '{print substr($0,17,1)}'`		
		if [ $JAVA_VERSION -ge 2 ]
			then JAVA_PATH=${JAVA_HOME}"/bin"
		fi
fi

if [ "x${JAVA_PATH}" == "x" ] 
	then 			
 		if [ -f "/usr/java1.2/bin/java" ]
			then JAVA_PATH="/usr/java1.2/bin"	
		else 
			if [ -f "/usr/j2se/bin/java" ]
				then JAVA_PATH="/usr/j2se/bin"
			else
		 		for D in $PATH; do
					if [ -f $D/java ]
					then							
						JAVA_VERSION=`${JAVA_HOME}/bin/java -version 2>&1 | head -1 | awk '{print substr($0,17,1)}'`						
						if [ $JAVA_VERSION -ge 2 ]
							then JAVA_PATH=$D
							break
						fi
					fi				
			done
			if [ "x${JAVA_PATH}" == "x" ]  
				then 	
					lmsg=`gettext "Java is not installed."`
					printf "${lmsg}\n"
				exit		
			fi
		fi
	fi	
fi

IFS=$OLDIFS

function usage {
	lmsg=`gettext "Usage: %s -h | -V | [ -i <interface> ]"`
	printf "${lmsg}\n" ${PROG_NAME}
	lmsg=`gettext "	-h Display help message"`
	printf "${lmsg}\n"
	lmsg=`gettext "	-V Display version information"`
	printf "${lmsg}\n"
	lmsg=`gettext "	-i Interface (gui,cli)"`
	printf "${lmsg}\n"
}

PROG_NAME="`basename ${0}`"

# Discern location of icapp from environment.
ICAPP_HOME=${0%/*}
cd ${ICAPP_HOME}
ICAPP_HOME=${PWD}
if [ "`basename ${ICAPP_HOME}`" != "bin" ]; then
  lmsg=`gettext "Unexpected environment."`
  printf "${lmsg}\n"
  exit 1 
fi
ICAPP_HOME=${ICAPP_HOME%/*}
cd ${ICAPP_HOME}
if [ "x$ICAPP_HOME" = "/opt/SUNWinck" ]; then
	PKGROOT="/"
else
	PKGROOT="${ICAPP_HOME%/opt/SUNWinck}"
fi
PKGROOT=${PKGROOT%/}

# Establish CLASSPATH for icapp
CLASSPATH="\
${PKGROOT}/${INCK_HOME}/lib/sunic.jar\
:${PKGROOT}/${INCK_HOME}/lib\
:${PKGROOT}/${INCK_ETC}\
:${PKGROOT}/${INCK_HOME}/lib/images\
:${PKGROOT}/${ICIS_HOME}/lib/icis.jar\
:${PKGROOT}/${EKE_HOME}/lib/common-libs.jar\
:${PKGROOT}/${ICIS_HOME}/lib/xerces.jar\
:${PKGROOT}/${ICIS_HOME}/lib/xml-apis.jar\
:${PKGROOT}/${ICIS_HOME}/lib/xalan.jar\
:${PKGROOT}/${EKE_HOME}/lib/eras-common.jar\
:${PKGROOT}/${EKE_HOME}/lib/kae.jar\
:${PKGROOT}/${ICIS_ETC}\
:${PKGROOT}/${INCK_VAR}/data\
:${PKGROOT}/${INCK_VAR}/data/kpl-libraries\
:${PKGROOT}/${ICIS_VAR}/data/kpl-libraries
"


# Parse command-line arguments
Vflag=0
dflag=0
while getopts hi:de:V c
do
  case $c in
    i)  interface="${OPTARG}";;
    d)  dflag=1;;
    e)  path="${OPTARG}";;
    V)  Vflag=1;;
    h | *)  usage
        exit 1;;
  esac
done

if [ $Vflag -eq 1 ]; then
        echo "Install Check 2.0.2"
        exit 0
fi



# Enforce default for interface
if [ "x${interface}" == "x" ] 
then
	if [ "x${DISPLAY}" == "x" ]
	then
		interface="cli"
	else
		interface="gui"
	fi
fi

if [ "x${interface}" = "xgui" ]
then
	export DISPLAY
	/usr/openwin/bin/xhost > /dev/null 2>&1
	if [ $? -ne 0 ]
	then
		lmsg=`gettext "Access to display %s was denied."`
		printf "${lmsg}\n" ${DISPLAY}
		lmsg=`gettext "Use the xhost command to enable access."`
		printf "${lmsg}\n" ${DISPLAY}
		exit 1
	fi
fi


if [ "$dflag" -eq 1 ]
then
  DEBUGARG="-DDEBUG_LEVEL=debug"
fi

exec ${JAVA_PATH}/java \
        -cp ${CLASSPATH} \
        -DICAPP_HOME=${PKGROOT}/${INCK_HOME} \
        -DICAPP_ETC=${PKGROOT}/${INCK_ETC} \
        -DICAPP_VAR=${PKGROOT}/${INCK_VAR} \
        -DICIS_HOME=${PKGROOT}/${ICIS_HOME} \
        -DICIS_ETC=${PKGROOT}/${ICIS_ETC} \
        -DICIS_VAR=${PKGROOT}/${ICIS_VAR} \
        -DHOST_NAME="`/usr/bin/uname -n`" \
        -DHOST_TYPE="`/usr/bin/uname -i`" \
        -DHOST_ID="`/usr/bin/hostid`" \
        ${DEBUGARG} \
        com.sun.vsp.km.ic.icapp.ICMain \
        ${interface} \
        ${path}


