#!/bin/sh
#
# Written by Jardel Weyrich <jweyrich at gmail dot com>
#
### BEGIN INIT INFO
# Provides:          redis-commander
# Required-Start:    $local_fs $network $named $time $syslog
# Required-Stop:     $local_fs $network $named $time $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: start Redis Commander (redis-commander)
### END INIT INFO

# Defaults
RUN_MODE="daemons"

# Reads config file (will override defaults above)
#[ -r /etc/default/redis-commander ] && . /etc/default/redis-commander

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME="redis-commander"
USER="redis"
GROUP="redis"
DESC="Redis Commander"
DAEMON="/usr/bin/redis-commander"
DAEMONOPTS=""
PIDDIR="/var/run/$NAME"
PIDFILE="$PIDDIR/$NAME.pid"
LOGDIR="/var/log/$NAME"
LOGFILE="$LOGDIR/$NAME.log"

# clear conflicting settings from the environment
unset TMPDIR

# See if the daemons are there
test -x $DAEMON || exit 0

. /lib/lsb/init-functions

case "$1" in
    start)
        log_daemon_msg "Starting $DESC"
        # Make sure we have our PIDDIR and LOGDIR, even if they're on a tmpfs.
        install -o root -g root -m 755 -d $PIDDIR
        install -o root -g root -m 755 -d $LOGDIR

        if [ "$RUN_MODE" != "inetd" ]; then
            log_progress_msg "$NAME"
            if ! start-stop-daemon --start --quiet --oknodo --chuid "$USER:$GROUP" --background --make-pidfile --pidfile $PIDFILE --no-close --startas $DAEMON -- $DAEMONOPTS >> $LOGFILE 2>&1; then
                log_end_msg 1
                exit 1
            fi
            # Change the log permissions.
            chown -R $USER:adm $LOGDIR
        fi

        log_end_msg 0
        ;;
    stop)
        log_daemon_msg "Stopping $DESC"

        if [ "$RUN_MODE" != "inetd" ]; then
            log_progress_msg "$NAME"
            start-stop-daemon --stop --quiet --oknodo --retry 10 --pidfile $PIDFILE

            # Wait a little and remove stale PID file
            sleep 1
            if [ -f $PIDFILE ] && ! ps h `cat $PIDFILE` > /dev/null
            then
                # Stale PID file (process was succesfully stopped).
                rm -f $PIDFILE
            fi
        fi

        log_end_msg 0
        ;;
    reload)
        if [ "$RUN_MODE" != "inetd" ]; then
            log_daemon_msg "Reloading $DESC"

            start-stop-daemon --stop --quiet --signal HUP --pidfile $PIDFILE

            log_end_msg 0
        fi
        ;;
    restart|force-reload)
        $0 stop
        sleep 1
        $0 start
        ;;
    status)
        status="0"
        if [ "$RUN_MODE" != "inetd" ]; then
            status_of_proc -p $PIDFILE $DAEMON $NAME || status=$?
        fi
        exit $status
        ;;
    *)
        echo "Usage: /etc/init.d/$NAME {start|stop|reload|restart|force-reload|status}"
        exit 1
        ;;
esac

exit 0
