#!/bin/bash

. /etc/rc.conf
. /etc/rc.d/functions
. /etc/profile

###############################################################################
# Default values to use if none are supplied in the config file.
#
# User who should start the mythbackend process
MBE_USER='mythtv'

# Startup options for mythbackend
MBE_OPTS=''

# Directory holding the mythbackend log file
LOG_PATH='/var/log/mythtv'

# Logging options for mythbackend
LOG_OPTS=''
###############################################################################

CONFIG_FILE=/etc/conf.d/mythbackend
PIDFILE=/var/run/mythbackend.pid

if [[ -r "$CONFIG_FILE" ]]; then
  . "$CONFIG_FILE"
fi

PID="$(cat "$PIDFILE" 2> /dev/null || pidof mythbackend)"
export HOME="$(getent passwd "$MBE_USER" | cut -d : -f 6)"

case "$1" in
  start)
    stat_busy "Starting MythTV Backend"

    if [[ "$PID" -gt 0 ]] && kill -0 "$PID"; then
      stat_fail
      exit 0
    fi

    touch "$PIDFILE"
    chown "$MBE_USER" "$PIDFILE" "$LOG_PATH"

    MBE_CMD="/usr/bin/mythbackend --daemon \
                                  --logpath "$LOG_PATH" $LOG_OPTS \
                                  --pidfile "$PIDFILE" $MBE_OPTS"
    if su "$MBE_USER" -c "$MBE_CMD"; then
      add_daemon mythbackend
      stat_done
    else
      stat_fail
    fi
    ;;
  stop)
    stat_busy "Stopping MythTV Backend"
    if [[ "$PID" -gt 0 ]] && kill "$PID" &> /dev/null; then
      rm_daemon mythbackend
      stat_done
      rm -f "$PIDFILE"
    else
      stat_fail
    fi
    ;;
  restart)
    "$0" stop
    "$0" start
    ;;
  *)
    echo "usage: $0 (start|stop|restart)"
    ;;
esac
exit 0
