#!/bin/bash
# Hyperion daemon service
# description: Hyperion daemon
# processname: hyperiond
### BEGIN INIT INFO
# Provides:          Hyperion
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Hyperion Ambilight init.d Service.
# Description:       Hyperion Ambilight init.d Service.
### END INIT INFO

DAEMON=hyperiond
DAEMON_PATH="/usr/bin"

NAME=$DAEMON
DESC="Hyperion ambilight server"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
case "$1" in
start)
        if [ $(pgrep -xl $NAME |wc -l) = 1 ]
        then
                printf  "%-50s\n" "Already running..."
                exit 1
        else
                printf "%-50s" "Starting $NAME..."
                cd $DAEMON_PATH
                PID=`$DAEMON > /dev/null 2>&1 & echo $!`
                #echo "Saving PID" $PID " to " $PIDFILE
                if [ -z $PID ]; then
                    printf "%s\n" "Fail"
                else
                    echo $PID > $PIDFILE
                    printf "%s\n" "Ok"
                fi
        fi
;;
status)
        printf "%-50s" "Checking $NAME..."
        if [ -f $PIDFILE ]; then
            PID=`cat $PIDFILE`
            if [ -z "`ps axf | grep ${PID} | grep -v grep`" ]; then
                printf "%s\n" "Process dead but pidfile exists"
            else
                echo "Running"
            fi
        else
            printf "%s\n" "Service not running"
        fi
;;
stop)
        if [ -f $PIDFILE ]
        then
                printf "%-50s" "Stopping $NAME"
                    PID=`cat $PIDFILE`
                    cd $DAEMON_PATH
                if [ -f $PIDFILE ]; then
                    kill $PID
                    printf "%s\n" "Ok"
                    rm -f $PIDFILE
                else
                    printf "%s\n" "pidfile not found"
                fi
        else
                printf "%-50s\n" "No PID file $NAME not running?"
        fi
;;

restart)
        $0 stop
        $0 start
;;

*)
        echo "Usage: $0 {status|start|stop|restart}"
        exit 1
esac

exit 0