#!/bin/bash
### BEGIN INIT INFO
# Provides:          deluge-web@###USERNAME###
# Required-Start:    $local_fs $remote_fs
# Required-Stop:     $local_fs $remote_fs
# Should-Start:      $network
# Should-Stop:       $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Daemonized version of deluge-web.
# Description:       Starts the deluge-web daemon for ###USERNAME###
### END INIT INFO


USER="###USERNAME###"
NAME="deluged@###USERNAME###"
DELUGED_BIN="/usr/bin/deluged"
PID_FILE="/home/###USERNAME###/.config/deluge/deluged.pid"
PID_FILE_RAW="/var/run/${NAME}.pid"


# Source function library.
. /etc/init.d/functions


start() {

    local i=0

    echo "Starting ${NAME}"

    daemon --user "${USER}" ${DELUGED_BIN} -l /var/log/deluge/${USER}/daemon.log -L info &> /dev/null
    while true ; do
       i=$((i+1))
       [ ${i} -gt 30 ] && break
       if [ -e "${PID_FILE}" ] ; then
           cat "${PID_FILE}" | awk -F';' '{print $1}' > "${PID_FILE_RAW}"
           break
       fi
       sleep 1
    done
}

stop() {
    echo "Stopping ${NAME}"

    [ -f "${PID_FILE_RAW}" ] \
        && kill $( cat "${PID_FILE_RAW}" )
    rm -f "${PID_FILE}"
    rm -f "${PID_FILE_RAW}"
}



case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    sleep 5
    start
    ;;
  status)
    status -p "${PID_FILE_RAW}" "${NAME}"
    ;;
  *)
    echo "Usage:  ${0} start|stop|restart|status"
    ;;
esac

exit 0
