#! /bin/sh
# chkconfig: 234 99 00
# description: A boot script for the Freevo package
#
# Enhanced boot script for freevo
#
# $Id: freevo 5489 2004-03-13 15:13:36Z mikeruelle $

# Get startup config file
test -f /etc/freevo/boot_config || exit 0
. /etc/freevo/boot_config

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/games
DAEMON=$FREEVO_HOME/freevo
NAME=freevo
DESC=freevo

if [ "$ROOTUSERINFO" == "yes" ]; then
    USER=root
    HOME=/root/
    export USER HOME
fi

test -f $DAEMON || exit 0

freevoserver() {
    # $1 is the server
    # $2 is the action
    $DAEMON $1 $2 2>&1 > /dev/null
}

case "$1" in
  start)
        echo -n "Setting up RTC: "
        sysctl -w dev.rtc.max-user-freq=1024 > /dev/null
        echo "sysctl."
        if [ "$RECORDSERVER" == "yes" ]; then
            echo -n "Starting Freevo Recordserver: "
            freevoserver "recordserver" "start"
            echo "Recordserver."
        fi
        if [ "$WEBSERVER" == "yes" ]; then
            echo -n "Starting Freevo Webserver: "
            freevoserver "webserver" "start"
            echo "Webserver."
        fi
        if [ "$SETNUMLOCK" == "yes" ]; then
            echo -n "Setting NUMLock on: "
            setleds +num
            echo "setleds."
        fi
        if [ "$HAVEKEYBOARD" == "no" ]; then
  	    export SDL_NOKEYBOARD=true
        fi
        if [ "$HAVEMOUSE" == "no" ]; then
            export SDL_NOMOUSE=true
        fi
	export SDL_VIDEODRIVER=$SDL_VIDEODRIVER
        if [ "$FREEVO" == "daemon" ]; then
	    echo -n "Starting $DESC: "
            freevoserver "daemon" "start"
	    echo "$NAME."
        elif [ "$FREEVO" == "yes" ]; then
	    echo -n "Starting $DESC: "
            if egrep -q '^display.*(x11|dga)' /etc/freevo/freevo.conf ; then
                PATH=$PATH:/usr/X11R6/bin
  	        $DAEMON -fs >> $FREEVO_LOG 2>&1 &
            else
  	        $DAEMON >> $FREEVO_LOG 2>&1 &
            fi
	    echo "$NAME."
        fi
	;;
  stop)
	echo -n "Stopping $DESC: "
        $DAEMON stop >> $FREEVO_LOG 2>&1 &
        sleep 5
        kill `pgrep -f "python src/main.py" -d" "` &> /dev/null
	kill `pgrep -f "python main.py" -d" "` &> /dev/null
	echo "$NAME."
        if [ "$RECORDSERVER" == "yes" ]; then
            echo -n "Starting Freevo Recordserver: "
            freevoserver "recordserver" "stop"
            echo "Recordserver."
        fi
        if [ "$WEBSERVER" == "yes" ]; then
            echo -n "Starting Freevo Webserver "
            freevoserver "webserver" "stop"
            echo "Webserver."
        fi
        echo -n "Hard kill to be sure: "
        ps aux | grep python | grep main.py | awk '{ print "kill -9 " $2 }' | sh
        echo "kill."
	;;
  restart|force-reload)
	echo "Restarting..."
	$0 stop
	sleep 1
	$0 start
	;;
  *)
	N=/etc/init.d/$NAME
	echo "Usage: $N {start|stop|restart|force-reload}" >&2
	exit 1
	;;
esac

exit 0
