#!/bin/sh
#
# Start or stop the MPlayerCluster recode-server for vdr.
#
# Written by Patrick Cernko <errror@gmx.de>
#

PATH=/bin:/usr/bin:/sbin:/usr/sbin

set -e

# the path where you have installed the mplayer.sh script and the recode-server
RECODE="/usr/local/mplayercluster"

# if you want logging, uncomment the following line
#LOG=/dev/null
LOG="${RECODE}/recode-server.log"

# if you want to run recode-server with another user id than root
# set it here
RECODEUSER=errror




if [ \! -z "$RECODEUSER" ]; then
    SUCMD="su $RECODEUSER -c"
else
    SUCMD=""
fi

case "${1}" in
    "start")
        echo -n "Starting MPlayerCluster recode-server: "
        if recodepid=`pgrep recode-server`; then
            echo "recode-server (already running [${recodepid}])."
        else
            # recode-server temporal needs write access in the working dir
            # for creating its fifos
            RECODETMP=`mktemp -td recode-server.XXXXXX`
            if [ $? -ne 0 ]; then
                echo "Failed to created temprary directory for recode-server!"
                exit 1
            fi
            if [ \! -z "${RECODEUSER}" ]; then
                chown ${RECODEUSER}: ${RECODETMP}
            fi
            cd $RECODETMP
            $SUCMD "${RECODE}/recode-server" "${RECODE}/mplayer.sh" > "${LOG}" 2>&1 &
            # todo removing tmpdir on stop, currently no idea
            echo "recode-server."
        fi
        ;;
    "stop")
        echo -n "Stopping MPlayerCluster recode-server: "
        if pkill -TERM "recode-server"; then
            echo "recode-server."
        else
            echo "not running."
        fi
        ;;
    "status")
        echo -n "MPlayerCluster recode-server is ";
        if recodepid=`pgrep recode-server`; then
            echo "running [${recodepid}]."
        else
            echo "not running."
        fi
        ;;
    "restart"|"force-reload")
        "${0}" stop
        "${0}" start
        ;;
    *)
        echo "Usage: ${0} {start|stop|status|restart|force-reload}" >&2
        exit 3
        ;;
esac
