#!/bin/csh
#-----------------------------------------------------------------------------#
#  Copyright (c) 1991, 1992  Southeastern Universities Research Association,  #
#                            Continuous Electron Beam Accelerator Facility    #
#                                                                             #
#    This software was developed under a United States Government license     #
#    described in the NOTICE file included as part of this distribution.      #
#                                                                             #
# CEBAF Data Acquisition Group, 12000 Jefferson Ave., Newport News, VA 23606  #
#      quarrie@cebaf.gov   Tel: (804) 249-7562    Fax: (804) 249-7363         #
#-----------------------------------------------------------------------------#
# Description:
#       Activation Script for CODA Process activation.
#	This script is designed to be used purely by the RunControl program.
#
# Useage:
#
#       coda_activate [options] <name> <numb> <type> <node> <expid> <session>
#
#       where valid options are:
#
#	-l[og] <file>	    The name of the log file. The default is none apart
#			    from the console logger, where the default is
#			    coda_console.log
#
#	-nol[og]	    Force no log file.
#
#	-p[rogram] <p>	    The name of the program to activate. This overrides
#			    the default which is derived automatically from the
#			    <type> parameter.
#
#	-f[ile] <f>	    Synonym for -program
#
#       -m[sqld] <m>        database server host name
#
#	-o[ption] <option>  An option to be passed to the program. Multiple
#			    options may be specified (each preceeded by -o),
#			    being concatenated.
#
#	The parameters are:
#
#	<name>		    The name of the CODA Process (e.g. ROC0)
#	<numb>		    The number of the CODA Process of that name (e.g. 0)
#	<type>		    The type of the CODA Process. Valid types are:
#
#			    ANA		Analysis
#			    EB		Event Builder
#			    ER		Event Recorder
#			    LOG		Console Log
#			    ROC		Readout Controller
#			    RCS		RunControl Server (rcServer)
#
#       <expid>             database name
#
#       <session>           session name
#
#	<node>		    The Node name of the target node (or localhost)
#
#     
# Author:
#	Jie Chen
#	CEBAF Data Acquisition Group
#
# Revision History:
#      $Log: coda_activate,v $
#      Revision 1.1  1997/05/21 15:12:21  heyes
#      initial
#
#
#------------------------------------------------------------------------------

	set node    =   `hostname`
	set dbasenode = `hostname`
	set program = ""
	set params  = ""
	set options = ""
	set logfile = "/dev/null"
	set ostype  = `uname`

        while ($#argv > 0)
            switch ("$argv[1]")
                case -f:
                case -file:
                case -p:
                case -program:
		    set program = $argv[2]
		    shift
		    breaksw
		case -l:
		case -log:
		    set logfile = $argv[2]
		    shift
		    breaksw
		case -nol:
		case -nolog:
		    set logfile = "/dev/null"
		    breaksw
		case -m:
		case -msqld:
		    set dbasenode = $argv[2]
	   	    shift
		    breaksw
                case -o:
                case -option:
		    set options = ($options $argv[2])
		    shift
		    breaksw
		default:
		    set params = ($params $argv[1])
	    endsw
	    shift
	end
	echo object $params[1] id $params[2] type $params[3] node $params[4] expid $params[5] session $params[6]
	if ($#params >= 6) then
	  if ($params[3] == "RCS") then
            set program = rcServer
	    if ($params[4] == $node || $params[4] == "localhost") then	
	        echo "starting $program $options" 
		cd $CODA_BIN;$program -m $dbasenode -d $params[5] -s $params[1] $options >& $logfile &
	    else
		echo "starting $program $options on $params[4]" 
		if ($ostype == HP-UX) then
			remsh $params[4] -n "cd $CODA_BIN;$program -m $dbasenode -d $params[5] -s $params[1]  $options >& $logfile &" &
		else
			rsh $params[4] -n "cd $CODA_BIN;$program -m $dbasenode -d $params[5] -s $params[1] $options >& $logfile &" &
	    	endif
            endif
          else
            switch ("$params[3]")
		case ANA:
		    set program = coda_gen
		    set obj_ty = CODA
		    breaksw
		case EB:
	            set program = coda_eb
		    set obj_ty = CDEB
		    breaksw
		case ER:
		    set program = coda_er
		    set obj_ty = ER
		    breaksw
		case LOG:
	            set program = cmsglog
		    set obj_ty = LOG
		    breaksw
		case ROC:
                    set program = coda_roc
		    set obj_ty = ROC
		    breaksw

		default:
		    echo "$params[3] illegal - request ignored"
 		    exit -1
	    endsw
	    if ($params[4] == $node || $params[4] == "localhost") then
		echo "starting $program $options" 
		setenv EXPID $params[5]
		cd $CODA_BIN;$program -sess $params[6] -msqld_host $dbasenode -name $params[1] -type $obj_ty $options >& $logfile &
	    else
		echo "starting $program $options on $params[4]" 
		if ($ostype == HP-UX) then
		  remsh $params[4] -n 'cd $CODA_BIN;setenv EXPID $params[5];$program -sess $params[6] -msqld_host $dbasenode -name $params[1] -type $obj_ty $options >& $logfile &' &
		else
		  rsh $params[4] -n "cd $CODA_BIN;setenv EXPID $params[5];setenv MSQL_TCP_HOST $dbasenode;$program -ses $params[6] -msqld_host $dbasenode -name $params[1] -type $obj_ty $options >& $logfile &" &
		endif
            endif
          endif
	else
	    echo "Incorrect no. of arguments ($#params) - request ignored"
	endif

