#!/bin/bash
#
#   dogrelay   This shell script takes care of starting and stopping
#              dogrelay daemon
# chkconfig:   345 91 9
# description: Dogrelay service

# Source function library.
. /etc/init.d/functions
. /etc/sysconfig/dogrelay

prog="dogrelay"
user="nobody"
progbin="dogrelay"
progpath="/usr/local/sbin/${progbin}"
lockfile="/var/lock/subsys/${prog}"
logfile_dir="/var/log/${prog}"
pidfile_dir="/var/run/${prog}"
daemon_bin="/usr/local/bin/daemon"

# make sure full path to executable binary is found
! [ -x $progpath ] && echo "$progpath: executable not found" && exit 1
! [ -x $daemon_bin ] && echo "daemon utility: executable not found" && exit 1

#create directories
[[ ! -d $logfile_dir ]] && mkdir $logfile_dir && chown $user $logfile_dir
[[ ! -d $pidfile_dir ]] && mkdir $pidfile_dir && chown $user $pidfile_dir

eval_cmd() {
  local rc=$1
  if [ $rc -eq 0 ]; then
    echo '[  OK  ]'
  else
    echo '[FAILED]'
  fi
  return $rc
}

start() {
  printf "%-50s%s" "Starting $prog: " ''
  $daemon_bin -n $prog -u $user -r -D /usr/local/sbin -P $pidfile_dir -O $logfile_dir/stdout.log -E $logfile_dir/stderr.log -X "$progpath $OPTIONS_INFLUX"
  RETVAL=$?
  [ $RETVAL -eq 0 ] && touch $lockfile
  eval_cmd $RETVAL
}

stop() {
  printf "%-50s%s" "Shutting down $prog: " ''
  $daemon_bin -n $prog -u $user -P $pidfile_dir --stop
  RETVAL=$?
  [ $RETVAL -eq 0 ] && rm -f $lockfile
  eval_cmd $RETVAL
}

status() {
  $daemon_bin -n $prog -u $user -P $pidfile_dir --running
  RETVAL=$?
  if [ $RETVAL -eq 0 ]; then
    echo "$prog is running..."
    return $RETVAL
  else
    echo "$prog is stopped"
    return $RETVAL
  fi
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    status)
        status
        ;;
    restart)
        stop
        start
        ;;
    *)
        echo "Usage: $prog {start|stop|status|restart"
        exit 1
        ;;
esac
exit $?

