#!/bin/sh
# kFreeBSD do not accept scripts as interpreters, using #!/bin/sh and sourcing.
if [ true != "$INIT_D_SCRIPT_SOURCED" ] ; then
    set "$0" "$@"; INIT_D_SCRIPT_SOURCED=true . /lib/init/init-d-script
fi
### BEGIN INIT INFO
# Provides:          prometheus-redis-exporter
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Should-Start:      redis-server
# Should-Stop:       redis-server
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Prometheus exporter for Redis metrics
# Description:       Prometheus exporter for Redis metrics
### END INIT INFO

# Author: Martina Ferrari <tina@debian.org>
# Author: Guillem Jover <gjover@sipwise.com>

DESC="Prometheus exporter for Redis metrics"
DAEMON=/usr/bin/prometheus-redis-exporter
NAME=prometheus-redis-exporter
USER=prometheus
PIDFILE=/run/prometheus/prometheus-redis-exporter.pid
LOGFILE=/var/log/prometheus/prometheus-redis-exporter.log

ARGS=""
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

HELPER=/usr/bin/daemon
HELPER_ARGS="--name=$NAME --output=$LOGFILE --pidfile=$PIDFILE --user=$USER"

do_start_prepare()
{
  mkdir -p $(dirname $PIDFILE) || true
  chown -R $USER: $(dirname $LOGFILE)
  chown -R $USER: $(dirname $PIDFILE)
}

do_start_cmd()
{
  # Return
  #   0 if daemon has been started
  #   1 if daemon was already running
  #   2 if daemon could not be started
  $HELPER $HELPER_ARGS --running && return 1
  $HELPER $HELPER_ARGS -- $DAEMON $ARGS || return 2
  return 0
}

do_stop_cmd()
{
  # Return
  #   0 if daemon has been stopped
  #   1 if daemon was already stopped
  #   2 if daemon could not be stopped
  #   other if a failure occurred
  $HELPER $HELPER_ARGS --running || return 1
  $HELPER $HELPER_ARGS --stop || return 2
  # wait for the process to really terminate
  for n in 1 2 3 4 5; do
    sleep 1
    $HELPER $HELPER_ARGS --running || break
  done
  $HELPER $HELPER_ARGS --running || return 0
  return 2
}
