#!/bin/sh
### BEGIN INIT INFO
# Provides:          tlp-pd
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: TLP Profiles Daemon
# Description:       Debian init.d script to manage the TLP Profiles Daemon;
#                    make its D-Bus interface available at
#                    org.freedesktop.UPower.PowerProfile.
### END INIT INFO

#set -x

DESC="TLP Profiles Daemon"
NAME="tlp-pd"
DAEMON="/usr/sbin/${NAME}"
DAEMON_OPTS=""
PIDFILE="/run/${NAME}.pid"
DEFAULTS="/etc/default/${NAME}"
SCRIPTNAME="/etc/init.d/${NAME}"

# exit if daemon is not installed
[ -x "$DAEMON" ] || exit 5

# read configuration file if it is present
# shellcheck disable=SC1090
[ -f $DEFAULTS ] && . $DEFAULTS

# define LSB functions
# shellcheck disable=SC1091
. /lib/lsb/init-functions

check_rc () {
    # $1: rc, $2: progress msg
    case "$1" in
        0) log_end_msg 0 ;;
        1) log_progress_msg "$2"; log_end_msg 0 ;;
        *) log_end_msg 1 ;;
        esac
}


case "$1" in
    start)
        log_daemon_msg "Starting $DESC" "$NAME"
        start-stop-daemon --start --quiet --pidfile $PIDFILE --startas $DAEMON -- $DAEMON_OPTS
        check_rc "$?" "already started"
        ;;

    stop)
        log_daemon_msg "Stopping $DESC" "$NAME"
        start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE
        check_rc "$?" "already stopped"
        ;;

    restart|force-reload)
        $0 stop
        $0 start
        ;;

    reload)
        log_daemon_msg "Scheduling reload of $DESC" "$NAME"
        start-stop-daemon --stop --quiet --signal HUP --pidfile $PIDFILE
        check_rc "$?" "not running"
        ;;

    status)
        status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $?
        ;;

    *)
        echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload|status}" 1>&2
        exit 3
        ;;

esac

exit 0
