#!/bin/bash

# Copyright 2016, DELL EMC, Inc.

### BEGIN INIT INFO
# Provides:          RackHD
# Required-Start:    $on-http $on-tftp $on-dhcp-proxy $on-taskgraph $on-syslog 
# Required-Stop:     $on-http $on-tftp $on-dhcp-proxy $on-taskgraph $on-syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: RackHD
# Description:       RackHD service
### END INIT INFO

NAME="rackhd"
USER="root"
PID_DIR="/var/run"

USAGE="Usage: $0 {start|stop|restart|status}"
RESTART=false

REQUIREDS=("on-http" "on-taskgraph" "on-dhcp-proxy" "on-tftp" "on-syslog")

if [ ! -f "/etc/default/$NAME" ]
then
    echo "Service disabled due to absence of /etc/default/$NAME" 1>&2
    exit 1
else
     . "/etc/default/$NAME"
fi

is_running(){
    service=$1
    /etc/init.d/${i} status
}

start_app() {
    if [ ! -d $PID_DIR ]; then mkdir -p "$PID_DIR"; fi

    echo "Starting $NAME ..."

    for i in ${REQUIREDS[@]}; do
        echo "start service ${i}"
        if is_running ${i};
        then
            echo "${i} is already running"
        else
            /etc/init.d/${i} start
        fi
    done
}

stop_app() {
    echo "Stoping $NAME ..."
    for i in ${REQUIREDS[@]}; do
        echo "stop service ${i}"
        /etc/init.d/${i} stop
    done
}

status_app() {
    for i in ${REQUIREDS[@]}; do
        /etc/init.d/${i} status
    done
}

case "$1" in
    start)
        start_app
    ;;

    stop)
        stop_app
    ;;

    restart)
        stop_app
        start_app
    ;;

    status)
        status_app
    ;;

    *)
        echo $USAGE
        exit 1
    ;;
esac
