#!/bin/sh
#
#
#set -x

# Not a Bourne shell running...
export PATH || exec sh -c "$0 $*"

# Even if it is a Korn shell, go to Bourne shell,
# Korn shell has some subtle incompatibilities...
if [ "$1" != "-recursive" ]
then
    (alias) >/dev/null 2>&1 && exec /bin/sh -c "$0 -recursive $*"
else
    shift
fi

INST_DIR="inst-dir"
PRO_DIR="$INST_DIR/sys"
PRO_MSG="$PRO_DIR/pro.msg"
PRO_LOG="log-dir"
PRO_PRD="prd-dir"
PRO_OPT="$PRO_PRD/pro_server.opt"

[ "$1" = "stop" ] && {
   if [ "$2" = "" ]
   then
       $0 usage
       exit 1
   fi
   $PRO_DIR/mcl $2 << EOF
shutdown
y
ex
EOF
   exit $?;
}
#
[ "$1" = "start" ] && {
   case $2 in
   "lic")
        if [ "$3" = "" ]
	then
	   $0 usage
	   exit 1
	fi
	PP="/lic=$3"
	LOG="$PRO_LOG/promod_lic$$.out"
	LOG1="$PRO_LOG/promod_lic$$.log"
	;;
   "both")
        if [ "$3" = "" ]
	then
	   $0 usage
	   exit 1
	fi
	PP="/lic=$3 /prdsrv"
	LOG="$PRO_LOG/promod_both$$.out"
	LOG1="$PRO_LOG/promod_both$$.log"
	;;
   "prd")
        if [ "$3" = "" -o "$4" = "" ]
	then
	   $0 usage
	   exit 1
	fi
	PP="/adr=$4 /srv=$3 /prdsrv "
	LOG="$PRO_LOG/promod_prd$$.out"
	LOG1="$PRO_LOG/promod_prd$$.log"
	shift
	;;
   *)
	$0 usage
	exit 1
   esac
   # Nun noch die Objektadressen parsen. Ann.: Sie starten ab $4!
   # (ggf. mit shift anpassen!)
   if [ "$4" != "" ]
   then
      PP="$PP /ad2=$4"
   fi
   if [ "$5" != "" ]
   then
      PP="$PP /ad3=$5"
   fi

   CMD="$PRO_DIR/smon -s smon$$ -n pro_srv $PRO_DIR/promod_server /msg=$PRO_MSG /log=$LOG1 /opt=$PRO_OPT $PP"
   echo $CMD > $LOG 2>&1
   echo "Starting: $CMD"
   echo "Logfile: $LOG"
   sh -c "cd $PRO_PRD; PATH='$PRO_DIR:$PATH'; export PATH; $CMD >> $LOG 2>&1" &
   exit $?;
}
#
[ "$1" = "" ] && {
   $0 usage
   exit 1
}

[ "$1" = "usage" ] && {
   echo ""
   echo "          ProMod Server and License Server Start / Stop Utility"
   echo "          -----------------------------------------------------"
   echo ""
   echo "  Syntax:"
   echo "         promod_srv      start lic  license_file [srv_addr2] [srv_addr3]"
   echo "         promod_srv      start both license_file [srv_addr2] [srv_addr3]"
   echo "         promod_srv      start prd  lic_srv_addr srv_addr [srv_addr2] [srv_addr3]"
   echo ""
   echo "         promod_srv      stop  srv_addr"
   echo ""
   echo ""
   echo "  license_file: name of License file for the License Server"
   echo "                (the License Server uses the Net-Address in the"
   echo "                 License file)"
   echo ""
   echo "  lic_srv_addr: Net-Address of the Promod License Server"
   echo "                (e.g. tcp:acs401:4711)"
   echo ""
   echo "  srv_addr:     Net-Address for the ProMod Server"
   echo ""
   echo "  srv_addr2,"
   echo "  srv_addr3:    additional Net-Adresses for the ProMod Server,"
   echo "                e.g. for serving in heterogeneous networks"
   echo ""
   exit 1
}
