#! /bin/sh
### BEGIN INIT INFO
# Provides:          ntopng
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Should-Start:      $network
# Should-Stop:       $network
# Short-Description: Start ntopng daemon
# Description:       Enable services provided by ntopng
### END INIT INFO

DAEMON="/usr/sbin/ntopng"
NAME="ntopng"
DESC="network top daemon"
INIT="/etc/default/$NAME"
HOMEDIR="/var/lib/ntopng"
LOGDIR="/var/log/ntopng"
SCRIPTNAME=/etc/init.d/$NAME
# The current version of ntopng always creates the pidfile in /var/tmp/ntopng.pid
#PIDFILE=/var/run/ntopng.pid
PIDFILE=/var/tmp/ntopng.pid
INTERFACES=""
ADD_ARGS=""

test -f $DAEMON || exit 0

. /lib/lsb/init-functions

test -f $INIT || exit 0

. $INIT

ARGS="--daemon --pid $PIDFILE"

if [ -n "$INTERFACES" ]; then
  for i in $INTERFACES; do
    ARGS="$ARGS -i $i"
  done
fi

if [ -n "$HTTP_PORT" ]; then
    ARGS="$ARGS -w $HTTP_PORT"
fi

ARGS="$ARGS $ADD_ARGS"

ntop_start() {
  /sbin/start-stop-daemon --start --quiet --name $NAME --pidfile $PIDFILE \
      --exec $DAEMON -- $ARGS \
      > /var/log/ntopng/startup.log 2>&1
  retval=$?
  if [ "$retval" -eq 1 ]; then
    log_progress_msg "already running"
    return 0
  fi
  return $retval
}

ntop_stop() {
  /sbin/start-stop-daemon --stop --quiet --oknodo --name $NAME --exec $DAEMON --retry 9 --pidfile $PIDFILE
  return $?
}

case "$1" in
  start)
    log_daemon_msg "Starting $DESC" "$NAME"
    if ntop_start; then
      log_success_msg
    else
      log_failure_msg
    fi
    ;;
  stop)
    log_daemon_msg "Stopping $DESC" "$NAME"
    if ntop_stop; then
      log_success_msg
    else
      log_failure_msg
    fi
    ;;
  restart | force-reload)
    log_daemon_msg "Restarting $DESC" "$NAME"
    if ntop_stop && ntop_start; then
      log_success_msg
    else
      log_failure_msg
    fi
    ;;
  reload | try-restart)
    log_action_msg "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}"
    exit 3
    ;;
  status)
    status_of_proc $DAEMON $NAME
    ;;
  *)
    log_action_msg "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}"
    exit 1
    ;;
esac

exit 0
