#!/bin/sh -p
#
# @(#)vmsa.sh	1.24 02/08/05 09:08:10
#
# Copyright(C) 2000 VERITAS Software Corporation. ALL RIGHTS RESERVED.
# UNPUBLISHED -- RIGHTS RESERVED UNDER THE COPYRIGHT
# LAWS OF THE UNITED STATES.  USE OF A COPYRIGHT NOTICE
# IS PRECAUTIONARY ONLY AND DOES NOT IMPLY PUBLICATION
# OR DISCLOSURE.
#
# THIS SOFTWARE CONTAINS CONFIDENTIAL INFORMATION AND
# TRADE SECRETS OF VERITAS SOFTWARE.  USE, DISCLOSURE,
# OR REPRODUCTION IS PROHIBITED WITHOUT THE PRIOR
# EXPRESS WRITTEN PERMISSION OF VERITAS SOFTWARE.
#
#               RESTRICTED RIGHTS LEGEND
# USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT IS
# SUBJECT TO RESTRICTIONS AS SET FORTH IN SUBPARAGRAPH
# (C) (1) (ii) OF THE RIGHTS IN TECHNICAL DATA AND
# COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013.
#               VERITAS SOFTWARE
# 1600 PLYMOUTH STREET, MOUNTAIN VIEW, CA 94043
#
#set -x
#

# Prepare for errors
#
trap "cleanup; exit 0" 1 2 15


#######
##########  Cleanup Environment
#######

unset JAVA_HOME			# `jre' uses JAVA_HOME to determine which `jre' to use
unset ENV			# prevent .kshrc file from executing

#######
##########  Initialize Variables
#######


# Platform Dependent Settings:
#
PROD_NAME="VERITAS VM Storage Administrator"	
PACKAGE_NAME="SOL" 			# Change for EMC

export PROD_NAME PACKAGE_NAME

# Other settings
#
CP=$CLASSPATH
CLASSPATH=
CLIENT="Vmsa"
EXT_PARAMS=""
GC=-noasyncgc
HELPSET=
HOSTS=`hostname`
LOCALHOST=`hostname`
JIT=
OS=`uname -s`
TH_TYPE=
JRE=${JRE:-jre}		# ensure JRE is set

JAVA12=0
if [ "$JAVA12" = 1 ]
then
	THREADS_FLAG= ; export THREADS_FLAG
	GC=
	JRE=java
fi

# Export into environment
#
export CLASSPATH CLIENT EXT_PARAMS GC HELPSET HOSTS JIT OS TH_TYPE JRE


#######
##########  Adjustments to Variables
#######


# Adjust Thread Type argument for SunOS
#
case $OS in
	"SunOS") ARCH=`uname -p`;
		 OSREL=`uname -r`;
		 if [ $ARCH = "sparc" -a $OSREL != "5.5.1" ];
		 then
			TH_TYPE=-native
		 fi ;;
esac


#######
##########  Determine SCRIPT_HOME (home of this script)
#######

# cd to the location of this script
#	/opt/VRTSvmsa/bin for the installed version
#	vrts/vm/applet for the development version
#
cd `dirname $0`

# Save the location and name of this script
#
SCRIPT_HOME=`pwd`
SCRIPT_NAME=`basename $0`


#######
##########  Handle the development environment/install environment
##########	differences
#######

if [ $SCRIPT_NAME = "vmsa.sh" ];
then
	# DEVELOPMENT ENVIRONMENT

	echo
	echo "RUNNING IN DEVELOPMENT ENVIRONMENT"
	echo

	# running in the Development environment
	#
	# Assumes:  user has set the CLASSPATH already
	#
	# source in the development parameters (if present)
	# This may reset the value of CODEBASE, CLASSPATH, and PATH !!!
	#
	if [ -r ./dev_params ];
	then
		. ./dev_params
	fi

	cd $SCRIPT_HOME/../../vm/applet

	CLASSPATH=${CLASSPATH:-$CP}	# for old dev_params files

	CODEBASE=`pwd`
	PROPS="-Dvrts.propertiesDir=$CODEBASE"
else

	# INSTALLED ENVIRONMENT

	# running in the installed product
	# go to the top of the product tree

	cd $SCRIPT_HOME/../vmsa/java

	CODEBASE=`pwd`	# CODEBASE is the location of the class tree
			# (/opt/VRTSvmsa/vmsa/java in the installed product)

	CLASSPATH=\
$CODEBASE:\
$CODEBASE/swingall.jar:\
$CODEBASE/vmsa.jar:\
$CODEBASE/help.jar:\
$CODEBASE/help_ja.jar:\
$CODEBASE/help_fr.jar:\
$CODEBASE/help_zh.jar:

	PATH=$SCRIPT_HOME/../jre/bin:$SCRIPT_HOME:$PATH

	unset USER_PARAMS	# don't let the user modify things

	# FEATURE SPECIFIC SETUP

	cd $SCRIPT_HOME
fi



#######
##########  Functions
#######

cleanup() {
	kill $pid 2>/dev/null
}



usage() {
        cat >& $1 <<-EOF
           vmsa - $PROD_NAME Client
	   usage: vmsa [-V|-r|-h] [hostname]
           Options:
              -V      Prints the version
              -r      Start client in Read-Only mode
              -g      Use green threads
              -n      Use native threads
              -h      Prints out this help message
EOF
}


show_version() {

	$JRE $TH_TYPE \
		-Dvrts.codebase=$CODEBASE \
		$CLIENT \
		-V
	echo
}


start_client() {
	$JRE $TH_TYPE $JIT $GC \
		-ms4m \
		-Dvrts.packageName=${PACKAGE_NAME} \
		-Dvrts.iconbase=$CODEBASE \
		-Dvrts.codebase=$CODEBASE \
		-Dvrts.localHost=$LOCALHOST \
		-Dhosts=$HOSTS \
		${EXT_PARAMS} \
		${PROPS} \
		${READONLY} \
		${USER_PARAMS} \
		${HELPSET} \
		${CLIENT} &

	pid=$!
	wait >/dev/null 2>&1
}



#######
##########  Process Options/Arguments
#######


while getopts Vrgnh c
do
	case $c in
	V)    	
		show_version;
		exit 0 ;;

	r)    	READONLY="-Dvrts.client.readonly=true" ;;

	g)	TH_TYPE="-green"  ;;

	n)	TH_TYPE="-native" ;;
		
	h|*)  	usage;  
		exit;;
	esac
done
shift `expr $OPTIND - 1`


if [ $# -gt 0 ];
then
	HOSTS=$*
fi


# check that DISPLAY is set
if [ ! "$DISPLAY" ]; then echo "Please set the DISPLAY environment variable."; exit 1; fi

#######
##########  Start The Client
#######

start_client

exit 0
