#!/bin/sh
#
# spawn-fcgi Startup script for the nginx HTTP Server
#
### BEGIN INIT INFO
# Provides: azstanksrv
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6 
# Short-Description: Yandex.Tanker WebService
# Description: Yandex.Tanker WebService
### END INIT INFO

SCRIPTNAME=$(basename $0)

DAEMON=/usr/bin/spawn-fcgi
FCGISOCK="/var/opt/bukts-yandex/run/azstank.sock"
FCGIUSER="www-data"
FCGIGROUP="www-data"
FCGIAPP="/opt/bukts-yandex/azsapi/api/azstank"
FCGIMODE="0777"
FCGIAPPCFG="/etc/opt/bukts-yandex/config-azs.js"
FCGIAPPARGS="-c ${FCGIAPPCFG}"
FCGICHILDREN=5
PIDFILE="/var/opt/bukts-yandex/run/$SCRIPTNAME.pid"
DESC="Служба управления Яндекс.Заправки"


# You can change settings for this script by editing /etc/default/$SCRIPTNAME
[ -r /etc/default/$SCRIPTNAME ] && . /etc/default/$SCRIPTNAME

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
test -x $FCGIAPP || exit 0

start() {
    ERR=0
    
    echo -n "Запуск \"$DESC\" :"
    
    if [ ! -f ${FCGIAPPCFG?} ]; then
        echo " ERROR : Отсутствует файл с конфигурацией cервиса."
        exit 0
    fi
    
    # $DAEMON -a $FCGIHOST -p $FCGIPORT -u $FCGIUSER -g $FCGIGROUP -f $FCGIAPP -P $PIDFILE -C $FCGICHILDREN 2> /dev/null || echo -en "\n already running"
    $DAEMON -s $FCGISOCK -M $FCGIMODE -u $FCGIUSER -g $FCGIGROUP -P $PIDFILE -- $FCGIAPP $FCGIAPPARGS > /dev/null 2>&1 
    ERR=$?
    if [ $ERR -ne 0 ]; then
	echo -n "ERROR : Уже запущена"
    else 

        if [ -f "${PIDFILE}" ] ; then
            procnum=`cat ${PIDFILE} 2>/dev/null`
        fi    
        echo -n " OK [${procnum?}]"
    fi
    echo "."
}
stop() {
    echo -n "Остановка \"$DESC\" :"
    procnum=`cat $PIDFILE 2>/dev/null`
    if [ -z ${procnum?} ]; then 
	echo -n " ERROR: Не найдена работающая служба [${procnum?}]"
    else	
	kill -QUIT ${procnum?} 
	ERR=$?
	if [ $ERR -ne 0 ]; then
          echo -n " ERROR [${procnum?}]"
        else
          echo -n " OK [${procnum?}]"
          if [ -f "${PIDFILE}" ] ; then
            rm -f "${PIDFILE}" 2>/dev/null
          fi  
	fi
    fi
    echo "."
}
restart() {
    echo -n "Перезагрузка  \"$DESC\" :"
    procnum=`cat $PIDFILE 2>/dev/null`
    if [ -z ${procnum?} ]; then 
	echo -n " ERROR: Не найдена работающая служба [${procnum?}]"
    else	
	kill -HUP ${procnum?}
	ERR=$?
        if [ $ERR -ne 0 ]; then
           echo -n " ERROR : Не удалось перезапустить службу [${procnum?}]"
        else
           echo -n " OK [${procnum?}]"
        fi
    fi

    echo "."
    
}
case "$1" in
start)
    start
;;
stop)
    stop
;;
restart|reload|force-reload)
    stop
    # One second might not be time enough for a daemon to stop,
    # if this happens, d_start will fail (and dpkg will break if
    # the package is being upgraded). Change the timeout if needed
    # be, or change d_stop to have start-stop-daemon use --retry.
    # Notice that using --retry slows down the shutdown process somewhat.
    sleep 1
    start
;;
*)
    echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
    exit 3
;;
esac

exit $?
