#!/bin/bash 
### BEGIN INIT INFO
# Provides:          yavsc
# Required-Start:    $local_fs $network $named $time $syslog $postgresql
# Required-Stop:     $local_fs $network $named $time $syslog $postgresql
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Description:       Script to run yavsc
### END INIT INFO

# Author: Ivan Derevianko aka druss <drussilla7@gmail.com>
# Modified by: Paul Schneider <redienhcs.luap@gmail.com>

. /lib/init/vars.sh
. /lib/lsb/init-functions

NAME=yavsc

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

TMP_SAVE_runlevel_VAR=$runlevel
unset runlevel

running() {
  if [ -f $PIDFILE ]
  then
    PID=$(cat $PIDFILE)
    if kill -0 $PID 2>/dev/null
      then
	    return 0
    fi
  fi
  return 1
}


export WWW_USER=www-data
export ROOT=/srv/www/${NAME}
export DESC="$NAME"
export PIDFILE=/var/run/kestrel-${NAME}.pid
export LOGDIR=/var/log
export DOTNET_CLI_HOME=$ROOT
export ASPDOTNETCORE_ENVIRONMENT=Production
export ASPDOTNETCORE_LOGLEVEL=Information
status() {
	if running;
	then
		echo "Service running $DESC ($NAME; pid: $PID)"
	else
		echo "Service stopped $DESC ($NAME)"
	fi
    echo WWW_USER: $WWW_USER ROOT:$ROOT DESC: $DESC NAME: $NAME PIDFILE: $PIDFILE LOGDIR=$LOGDIR
}


start() {
	if running; then
		echo "Service already running $DESC" "$NAME"
		log_end_msg 0  
	else
        cd $ROOT
        sleep 4
		log_daemon_msg "Starting service $NAME for user $WWW_USER"
		if ! start-stop-daemon -SbmCv -u $WWW_USER -p $PIDFILE -d $ROOT -g www-data -x yavsc  > "${LOGDIR}/kestrel-${NAME}.log"
        then 
			log_daemon_msg "Could not start $NAME : $?, see ${LOGDIR}/kestrel-${NAME}.log"
			log_end_msg 2
		else
			log_daemon_msg "Service $DESC started ($NAME), logs: ${LOGDIR}/kestrel-${NAME}.log"
			log_end_msg 0  
		fi
	fi

}

stop() {
	if running
	then
		log_daemon_msg "Stopping service $NAME"
		start-stop-daemon -K -p "$PIDFILE"
		log_daemon_msg "$DESC stopped"
		log_end_msg 0  
	else
		log_daemon_msg "$DESC Service not running"
	    log_end_msg 1  
	fi
}


case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  status)
    status
	;;

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

export runlevel=$TMP_SAVE_runlevel_VAR


