#!/sbin/sh
#
# Copyright 1997-1999 by Sun Microsystems, Inc.
# All rights reserved.
#
# @(#)nhcmm 1.27     02/02/15 SMI
#

CMM_BIN_DIR=/opt/SUNWcgha/sbin
CMM_LIBRARY_DIR=/opt/SUNWcgha/lib
CMM_CONFIG_DIR=/etc/opt/SUNWcgha
CMM_CONFIG_FILE=target.conf

USER_FILE=/etc/opt/SUNWcgha/nhcmm.conf
INSTALL_FILE=/etc/opt/SUNWcgha/not_configured

CRFS_CONFIG_FILE=/etc/opt/SUNWcgha/crfs.conf
CRFS_MASTER_KEY=master_dyn_addr
CRFS_VICE_KEY=vice_master_dyn_addr


# Make the runtime linker load all shared objects at startup
LD_BIND_NOW=yes
export LD_BIND_NOW


if [ -f "$INSTALL_FILE" ]
then
	echo "[nhcmm] $INSTALL_FILE present"
	echo " => no action taken"
	exit 0
fi

# inline the user modifiable config file
.  $USER_FILE

# do some sanity checks on the user config file info

if [ -z "$CMM_NIC0" ]
then
    echo "CMM_NIC0 not set in  $USER_FILE"
    exit 1
fi

if [ -z "$CMM_NIC1" ]
then
    echo "CMM_NIC1 not set in  $USER_FILE"
    exit 1
fi

if [ -z "$CMM_DOMAIN_ID" ]
then
    echo "CMM_DOMAIN_ID not set in  $USER_FILE"
    exit 1
fi

if [ -z "$CMM_SHARED_CONFIG_DIR" ]
then
    echo "CMM_SHARED_CONFIG_DIR not set in  $USER_FILE"
    exit 1
fi

CMM_OPTION="-d"

case "$1" in
'start')

	CMM_OPTION="$CMM_OPTION -f $CMM_CONFIG_DIR/$CMM_CONFIG_FILE"
	CMM_OPTION="$CMM_OPTION -n $CMM_SHARED_CONFIG_DIR"
	CMM_OPTION="$CMM_OPTION -g $CMM_DOMAIN_ID"

	if [ ! -z "$CMM_LIBRARY_DIR" ]; then
		# WORK AROUND 
		LD_LIBRARY_PATH=${CMM_LIBRARY_DIR}:${LD_LIBRARY_PATH}
		export LD_LIBRARY_PATH
	fi

	if [ "$CMM_IS_ELIGIBLE" = YES ]; then
		CMM_OPTION="$CMM_OPTION -l"
	elif [ "$CMM_IS_ELIGIBLE" != NO ]; then
		echo "\$CMM_IS_ELIGIBLE can be YES OR NO \c"
		echo "(current value is \"$CMM_IS_ELIGIBLE\")"
		exit 1
	fi

	# TAKE INTO ACCOUNT CARDS NAMES
	if  [ ! -z "$CMM_NIC0" ]; then
	    if [ "$CMM_NIC0" != UNDEFINED ]; then
		CMM_OPTION="$CMM_OPTION -o nic0=$CMM_NIC0"
	    fi
	fi

	if [ "$CMM_USE_CGTP" != YES ]; then
	    CMM_OPTION="$CMM_OPTION -o noroute"
	else
	    if  [ ! -z "$CMM_NIC1" ]; then
		if [ "$CMM_NIC1" != UNDEFINED ]; then
		    CMM_OPTION="$CMM_OPTION -o nic1=$CMM_NIC1"
		fi
	    fi
	fi


	# GET MASTER'S AND VICEMASTER'S ID FROM CRFS CONFIG FILE
	if [ -r $CRFS_CONFIG_FILE ]; then
		CMM_MASTER_ID=`grep -s -w $CRFS_MASTER_KEY $CRFS_CONFIG_FILE | grep -v \# | tail -1 | cut -d= -f2 | cut -d. -f4`
		CMM_VICE_ID=`grep -s -w $CRFS_VICE_KEY $CRFS_CONFIG_FILE | grep -v \# | tail -1 | cut -d= -f2 | cut -d. -f4`
                
		if [ ! -z "$CMM_MASTER_ID" ]; then
			CMM_OPTION="$CMM_OPTION -o masterid=$CMM_MASTER_ID"
        	fi
		if [ ! -z "$CMM_VICE_ID" ]; then
			CMM_OPTION="$CMM_OPTION -o vicemid=$CMM_VICE_ID"
		fi
	fi



	echo "starting cmm \c"
	
	CGHA_COMPONENT_NAME="CMM"
	export CGHA_COMPONENT_NAME

	$CMM_BIN_DIR/nhcmmd $CMM_OPTION 

	if [ $? -eq 0 ] ; then
		echo "done."
	else
		echo "failed."
	fi
	;;

'stop')
	for prog in nhcmmd; do
		/usr/bin/pkill -x -u 0 $prog
	done
	;;

*)
	echo "Usage: $0 { start | stop }"
	exit 1
	;;
esac

exit 0
