#!/bin/sh
#/*
# * Licensed to the Apache Software Foundation (ASF) under one or more
# * contributor license agreements.  See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The ASF licenses this file to You 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.
# */
#
# init script for XmlRpcFileManager
#
# chkconfig: 345 88 22
# description: CAS File Manager
#

[ -f /etc/sysconfig/java ] && . /etc/sysconfig/java

SERVER_PORT=9000
export SERVER_PORT

if [ -z $JAVA_HOME ] ; then
	JAVA_HOME=/path/to/java/home
else
	JAVA_HOME=${JAVA_HOME}
fi

export JAVA_HOME
FILEMGR_HOME=`cd ..; pwd`
export FILEMGR_HOME
RUN_HOME=${FILEMGR_HOME}/../run
export RUN_HOME
CAS_FILEMGR_PROPS=../etc/filemgr.properties
export CAS_FILEMGR_PROPS

PATH=${JAVA_HOME}/bin:${FILEMGR_HOME}/bin:/usr/bin:/bin:/usr/sbin:/sbin
export PATH

## make sure that casfile manager has a run directory
## just to be on the safe side
mkdir -p "${RUN_HOME}"

for file in `find ../lib/*.jar`; do
     LIB_DEPS="${file}:${LIB_DEPS}"
done

if [ ! -z $OODT_DISTRIBUTED_CONF ]
    then
    if [ ! -z $ZK_CONNECT_STRING ]
        then
        echo "Using distributed configuration management"
        DISTRIBUTED_CONF_PROPERTIES="-Dorg.apache.oodt.config.zk.connectString=${ZK_CONNECT_STRING} -Dorg.apache.oodt.config.distributed=true"
    else
        echo "Zookeeper connect string (ZK_CONNECT_STRING) is not set while OODT_DISTRIBUTED_CONF is set"
        exit 1
    fi
else
    echo "Using standalone configuration management"
fi

# See how we were called.
case "$1" in
  start)
        echo -n "Starting cas file manager: "
        $JAVA_HOME/bin/java \
        	-cp ${LIB_DEPS} \
        	${DISTRIBUTED_CONF_PROPERTIES} \
        	-Dlog4j.configurationFile="${FILEMGR_HOME}/etc/log4j2.xml" \
        	-Djava.util.logging.config.file="${FILEMGR_HOME}/etc/logging.properties" \
    	    -Dorg.apache.oodt.cas.filemgr.properties=${CAS_FILEMGR_PROPS} \
        	org.apache.oodt.cas.filemgr.system.FileManagerServerMain \
        	--portNum $SERVER_PORT &
        echo $! > "${RUN_HOME}/cas.filemgr.pid" 
        echo "OK"
        sleep 5
        ;;
  stop)
        echo -n "Shutting down cas file manager: "
        kill `cat "${RUN_HOME}/cas.filemgr.pid"`
        rm -f "${RUN_HOME}/cas.filemgr.pid"
        echo "OK"
        ;;
  restart)
        $0 stop
        $0 start
        ;;
  status)
        if [ -e "${RUN_HOME}/cas.filemgr.pid" ] ; then
           pid=`cat "${RUN_HOME}/cas.filemgr.pid"`
           echo "cas filemgr is running with pid: $pid" 
        else
           echo "cas filemgr is not running"
        fi
        ;;
  *)
        echo "Usage: $0 {start|stop|restart|status}"
        exit 1
esac

exit 0
