#! /bin/sh

### BEGIN INIT INFO
# Provides:      	ums
# Required-Start:   	$network $local_fs $remote_fs
# Required-Stop:
# Default-Start:   	2 3 4 5
# Default-Stop:      	0 1 6
# Short-Description:   	Universal Media Server
# Description:       	UPnP media server
### END INIT INFO
##
## Version 3.0 By RyLoS 12-ago-2011 (email: rylos78@gmail.com)
## Contributed by MikyZ on 18/06/2011
## Contributed by Sylvain on 11/08/2011
##
# Source init-functions:
#source /lib/lsb/init-functions
. /lib/lsb/init-functions
#export LANG="fr_FR.UTF-8"
# Script variables:
MONTH=`date +%Y-%m`
PMS_HOME="/home/fabien/Apps/ums"
PMS_LOG="/home/fabien/Apps/ums/ums.log"
DESC="Universal Media Server"
NAME="UMS.sh"
PMS_PROFILE="/home/fabien/.config/UMS"

# Path to executable:
DAEMON="$PMS_HOME/$NAME"

#PID file to create
PIDFILE="/var/run/pms.pid"

# Run as user/group [UPDATE THESE TO MAKE VALID]:
PMSUSER=fabien
PMSGROUP=users

# update PATH:
PATH="$PMS_HOME:${PATH:+$PATH:}/usr/sbin:/sbin"

# export env-vars
export PATH PMS_HOME PMS_LOG PMS_PROFILE

# Exit if the package is not installed
if [ ! -x "$DAEMON" ]; then {
   echo "Couldn't find $DAEMON or not executable"
   exit 99
    }
fi

#
# Function that starts the daemon/service
#
do_start() {
    # Return
    #   0 if daemon has been started
    #   1 if daemon was already running
    if [ -e "$PIDFILE" ]; then {
      log_daemon_msg "$DESC" "$NAME already running or PID file present"
      return 2
    }
    fi

    log_daemon_msg "Starting $DESC" "$NAME"
    start-stop-daemon --start --quiet --chdir $PMS_HOME --chuid $PMSUSER:$PMSGROUP --exec $DAEMON --pidfile $PIDFILE --make-pidfile --test > /dev/null || return 1
    start-stop-daemon --start --quiet --chdir $PMS_HOME --chuid $PMSUSER:$PMSGROUP --exec $DAEMON --pidfile $PIDFILE --make-pidfile > $PMS_LOG 2>&1 &
}


#
# Function that stops the daemon/service
#
do_stop() {
    # Return
    #   0 if daemon has been stopped
    #   1 if daemon was already stopped
    #   2 if daemon could not be stopped
    #   other if a failure occurred
    log_daemon_msg "Stopping $DESC" "$NAME"
    start-stop-daemon --stop --signal 2 --retry 5 --quiet --pidfile $PIDFILE
    RETVAL="$?"
    [ "$RETVAL" = 2 ] && return 2
    if [ -e "$PIDFILE" ]; then {
      rm $PIDFILE
    }
    fi
    return "$RETVAL"
}

case "$1" in
    start)
   do_start
   case "$?" in
       0|1) log_end_msg 0 ;;
       2) log_end_msg 1 ;;
   esac
   ;;
    stop)
   do_stop
   case "$?" in
       0|1) log_end_msg 0 ;;
       2) log_end_msg 1 ;;
   esac
   ;;
    restart)
   do_stop
   do_start
   case "$?" in
       0|1) log_end_msg 0 ;;
       2) log_end_msg 1 ;;
   esac
   ;;
    *)
   echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
   exit 3
   ;;
esac

exit 0
