#!/bin/sh
#
#cobra api for web
source /etc/rc.d/init.d/functions
export PYTHONPATH=$PYTHONPATH:/opt/cobra/cobra-api
export PYTHONPATH=$PYTHONPATH:/usr/lib/python3.6/site-packages
export PYTHONPATH=$PYTHONPATH:/usr/local/python3.6/lib
export PYTHONPATH=$PYTHONPATH:/usr/local/python3.6/lib64
export PYTHONPATH=$PYTHONPATH:/usr/local/python3.6/lib/site-packages
apipidfile="/opt/cobra/cobra-api/cobraapi.pid"
apibin="/opt/cobra/cobra-api/src/Api.py"
logfile="/opt/cobra/cobra-api/cobraapi.log"
# check Api is exists
if [ ! -f $apibin ];then
        echo "Executable file $apibin not found.  Exiting."
        exit 1
fi

status(){
        if [ -f $apipidfile ];then
                stauspid=`cat $apipidfile`
        else
                stauspid=''
        fi
        if ps -p $stauspid > /dev/null 2>&1; then
                echo "CobraApi is running"
                exit  0
        else
                echo "CobraApi is not running"
                exit 1
        fi
#       exit 0  
}
start(){
        #check if api is already running
        $0 status > /dev/null
        if [ $? -eq 0 ];then
                echo "CobraApi is already running"
                return 0
        else
                echo -n $"Starting cobraapi: "
                exec python3 $apibin  >>$logfile  2>&1 &
                sleep 5
                pgrep -f "python3 /opt/cobra/cobra-api/src/Api.py" > /dev/null 2>&1
                ret=$?
                if [ $ret -eq 0 ]; then
                        touch $apipidfile
                        echo $! > $apipidfile
                        success
                        echo 
                        exit 0
                else
                        failure
                        #echo "CobraApi start failed.See details in /opt/cobra/cobra-api/cobraapi.log"
                        echo 
                        exit 1
                fi
         fi
}

stop(){
        if [ -f $apipidfile ];then
                stopapipid=`cat $apipidfile`
        fi
        $0 status > /dev/null
        if [ $? -eq 1 ];then
                echo "CobraApi is not running"
                return 0
        fi
        kill $stopapipid >/dev/null 2>&1
        if [ $? -eq 0 ];then
                echo "CobraApi has been stopped."
                rm -rf $apipidfile
                return 0
        else
                echo "CobarApi stopped failed"
                return 1
        fi
}

restart(){
        stop
        start
}
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        stop
        ;;
  restart)
        restart
        ;;
  status)
        status
        ;;

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

