#!/bin/sh

#  Copyright (c) Members of the EGEE Collaboration. 2007-2010. 
#
#    See http://www.eu-egee.org/partners/ for details on the copyright
#    holders.  
#  
#    Licensed under the Apache License, Version 2.0 (the "License"); 
#    you may not use this file except in compliance with the License. 
#    You may obtain a copy of the License at 
#  
#        http://www.apache.org/licenses/LICENSE-2.0 
#  
#    Unless required by applicable law or agreed to in writing, software 
#    distributed under the License is distributed on an "AS IS" BASIS, 
#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
#    See the License for the specific language governing permissions and 
#    limitations under the License.
#

# description: gLite CE blah parser
# chkconfig: - 94 15

# Source function library
. /etc/rc.d/init.d/functions

if [ -e "/usr/libexec/grid-env.sh" ]; then
 . /usr/libexec/grid-env.sh
fi

if [ -e "${LSF_BASE_DIR}/conf/profile.lsf" ]; then
 . ${LSF_BASE_DIR}/conf/profile.lsf
fi

if [ "x${BLAHPD_LOCATION}" != "x" -a -d "${BLAHPD_LOCATION}/libexec" ]; then
  blparser_bin_directory="${BLAHPD_LOCATION}/libexec"
else
  if [ "x${GLITE_LOCATION}" != "x" -a -d "${GLITE_LOCATION}/bin" ]; then
    blparser_bin_directory="${GLITE_LOCATION}/bin"
  else
#   Default value when everything else fails.
    blparser_bin_directory="/usr/libexec/blahp"
  fi
fi


if [ ! -d "$BLAHPD_LOCATION" ]; then
  if [ -d "$GLITE_LOCATION" ]; then
    export BLAHPD_LOCATION="$GLITE_LOCATION"
  else
#   Default value when everything else fails.
    export BLAHPD_LOCATION="/usr"
  fi
fi

if [ ! -r "$BLAHPD_CONFIG_LOCATION" ]; then
  if [ -r "/etc/blah.config" ]; then
    export BLAHPD_CONFIG_LOCATION="/etc/blah.config"
  elif [ -r "${BLAHPD_LOCATION:-/opt/glite}/etc/blah.config" ]; then
    export BLAHPD_CONFIG_LOCATION="${BLAHPD_LOCATION:-/opt/glite}/etc/blah.config"
  fi
fi

if [ ! -r "$BLAHPD_CONFIG_LOCATION" ]; then
  echo "$0: Cannot read BLAH config file (\$BLAHPD_CONFIG_LOCATION, or /etc/blah.config, or /opt/glite/etc/blah.config)"
  exit 1
fi

. $BLAHPD_CONFIG_LOCATION

  if [ "x${job_registry}" != "x" ]; then
    use_registry="yes"
  fi
  
  
  if [ "x${use_registry}" = "xyes" ]; then
   GLITE_CE_BUPDATER=$bnotifier_path
   GLITE_CE_BNOTIFIER=$bupdater_path
  else
   GLITE_CE_PARSER_MASTER=${blparser_bin_directory}/blparser_master
  fi
  
  case "$1" in

  start)
              if [ "x${use_registry}" = "xyes" ]; then
	       echo -n "Starting `basename $GLITE_CE_BUPDATER`: " 
	       daemon --user=tomcat $GLITE_CE_BUPDATER
               RETVAL=$?
	       echo 
	      fi

              if [ "x${use_registry}" = "xyes" ]; then
               echo -n "Starting `basename $GLITE_CE_BNOTIFIER`: " 
               daemon --user=tomcat $GLITE_CE_BNOTIFIER
	      else
               echo -n "Starting `basename $GLITE_CE_PARSER_MASTER`: " 
               daemon $GLITE_CE_PARSER_MASTER
	      fi
              RETVAL=$?
              echo
              ;;

  stop)
              if [ "x${use_registry}" = "xyes" ]; then
       	       echo -n "Shutting down `basename ${GLITE_CE_BUPDATER}`: "
       	       killproc ${GLITE_CE_BUPDATER} 
               RETVAL=$?
       	       echo
	      fi

              if [ "x${use_registry}" = "xyes" ]; then
	       echo -n "Shutting down `basename ${GLITE_CE_BNOTIFIER}`: "
               killproc ${GLITE_CE_BNOTIFIER} 
	      else
               echo -n "Shutting down `basename ${GLITE_CE_PARSER_MASTER}`: "
               killproc ${GLITE_CE_PARSER_MASTER}
	      fi
              RETVAL=$?
              echo
              ;;

  status)
              if [ "x${use_registry}" = "xyes" ]; then
	       status ${GLITE_CE_BUPDATER}
	       status ${GLITE_CE_BNOTIFIER}
	      else
               status ${GLITE_CE_PARSER_MASTER}
	      fi
              RETVAL=$?
	      ;;

  restart)
            $0 stop
            if [ "x${use_registry}" != "xyes" ]; then
	     sleep 4
	    fi
            $0 start
            ;;

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

exit $RETVAL

  
  
  
  
  
