#!/bin/bash
#
# backuppro     Start the Redstor Pro ESE client service
#
# chkconfig 2345 55 25
# description: Redstor Pro ESE

### BEGIN INIT INFO
# Provides: backupprod
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Should-Start: $network $remote_fs $named
# Should-Stop: $network $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Redstor Pro ESE
# Description: Redstor Pro ESE
### END INIT INFO

. /lib/lsb/init-functions

INSTALL_DIR=/opt/backuppro
BACKUPPROD=$INSTALL_DIR/sbin/backupprod

RETVAL=0

check_installed() {
    if [ ! -x "$BACKUPPROD" ] ; then
        log_failure_msg "backupprod not found"
        exit 5
    fi
}

check_root() {
    if [ "$EUID" -ne 0 ] ; then
        log_failure_msg "must be root"
        exit 4
    fi
}

start() {
    check_installed
    check_root
    $BACKUPPROD -b >/dev/null
    RETVAL=$?
    if [ $RETVAL -eq 0 ] ; then
        log_success_msg "backupprod started"
    else
        log_failure_msg "unable to start backupprod"
        RETVAL=1
    fi
}

stop() {
    check_installed
    check_root
    $BACKUPPROD -k >/dev/null
    RETVAL=$?
    if [ $RETVAL -eq 0 ] ; then
        log_success_msg "backupprod stopped"
    else
        log_failure_msg "unable to stop backupprod"
        RETVAL=1
    fi
}

restart() {
    stop
    start
}

tryrestart() {
    check_installed
    check_root
    $BACKUPPROD -q >/dev/null
    RETVAL=$?
    if [ $RETVAL -eq 0 ] ; then
        # service running
        restart
    fi
}

status() {
    check_installed
    $BACKUPPROD -q >/dev/null
    RETVAL=$?
    case "$RETVAL" in
        0)
            log_success_msg "backupprod is running"
            RETVAL=0
            ;;
        7)
            log_success_msg "backupprod is not running"
            RETVAL=3
            ;;
        *)
            log_failure_msg "unable to determine if backupprod is running"
            RETVAL=4
            ;;
    esac
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        restart
        ;;
    try-restart)
        tryrestart
        ;;
    reload)
        restart
        ;;
    force-reload)
        restart
        ;;
    status)
        status
        ;;
    *)
        echo "Usage: $0 {start|stop|restart|try-restart|reload|force-reload|status}"
        RETVAL=2
esac
exit $RETVAL
