#!/bin/bash
#
# Description: init script for the yadtreceiver.
#
# Author:      Arne Hilmann <arne.hilmann@gmail.com>
set -e -E -u

PIDFILE=/var/run/yadtreceiver.pid
TACFILE=/etc/twisted-taps/yadtreceiver.tac
TWISTD=/usr/bin/twistd
CONFIGFILE=/etc/sysconfig/yadtreceiver
LOGFILE=/var/log/yadtreceiver.log

[[ -r $CONFIGFILE ]] && source $CONFIGFILE

get_pid() {
    ps -eopid,cmd | grep -v grep | grep "python .*twistd .*$TACFILE" | sed "s/^ *//;s/ .*//"
}
PID=$(get_pid)

case "${1:-}" in
    start)
        if [[ -z $PID ]]; then
            $TWISTD --pidfile=$PIDFILE --python=$TACFILE --logfile=$LOGFILE ${uid:+--uid=$uid} ${gid:+--gid=$gid}
            echo "$0 started, returning 0" && exit 0
        else
            echo "$0 already running (pid $PID), returning 0" && exit 0
        fi
    ;;
    stop)
        if [[ -z $PID ]]; then
            echo "$0 not running, returning 0" && exit 0
        else
            kill -QUIT $PID
            sleep 1
            rm -f $PIDFILE
            PID2=$(get_pid)
            if [[ -z $PID2 ]]; then
                echo "$0 stopped, returning 0" && exit 0
            else
                echo "$0 could not be stopped (pid $PID), returning 1" && exit 1
            fi
        fi
    ;;
    status)
        if [[ -z $PID ]]; then
            echo "$0 not running, returning 3" && exit 3
        else
            echo "$0 running (pid $PID), returning 0" && exit 0
        fi
    ;;
    *)
        echo "Usage: $0 {start|stop|status}" >&2 && exit 3
    ;;
esac
