#!/bin/bash

### BEGIN INIT INFO
# Provides:          artixcs-sale-renderer
# Required-Start:    99
# Required-Stop:     99
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Rendering check
# Description:       Sales for renderer checks.
### END INIT INFO

servicename="artixcs-sale-renderer"
rootdir="/opt/artixcs-sale-renderer"
server="$rootdir/server.js"
logdirectory="/var/log/artix/$servicename"
logfile="$logdirectory/$servicename.log"
nodejs="node"

lockfile="/var/lock/$servicename"

RETVAL=0

touch $logfile

do_start()
{
    if [ ! -f "$lockfile" ] ; then

        if [ ! -d "$logdirectory" ]; then
            mkdir -p "$logdirectory"
        fi
        date +"%Y-%m-%d %T Starting $servicename" >> $logfile
        echo -n $"Starting $servicename "
        cd $rootdir
        sudo nohup $nodejs $rootdir/server.js >> $logfile 2>&1 &
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch "$lockfile"
    else
        echo "$servicename is locked."
        RETVAL=1
    fi
}
 
do_stop()
{
    date +"%Y-%m-%d %T Stopping $servicename" >> $logfile
    echo -n $"Stopping $servicename "
    pid=`ps -aefw | grep "$nodejs $server" | grep -v " grep " | awk '{print $2}'`
    kill -9 $pid > /dev/null 2>&1
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && rm -f "$lockfile"

    if [ "$pid" = "" -a -f "$lockfile" ]; then
        rm -f "$lockfile"
        echo "Removed lockfile $lockfile"
    fi
}
 
do_status()
{
   pid=`ps -aefw | grep "$nodejs $server" | grep -v " grep " | awk '{print $2}'`
   if [ "$pid" != "" ]; then
     echo "$servicename ( $pid ) is running..."
   else
     echo "$servicename is stopped"
   fi
}

case "$1" in
    start)
        do_start
        ;;
    stop)
        do_stop
        ;;
    status)
        do_status
        ;;
    restart)
        do_stop
        do_start
        RETVAL=$?
        ;;
    *)
        echo "Usage: $0 {start|stop|status|restart}"
        RETVAL=1
esac

exit $RETVAL
