#!/usr/bin/bash
# -*- coding: utf-8; -*-
#
# (c) 2016 Siveo http://www.siveo.net
#
# $Id: launcher 30 2016-09-21 16:40:54Z nlecureuil$
#
# This file is part of Pulse 2, http://www.siveo.net
#
# Pulse 2 is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# Pulse 2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Pulse 2; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
#
### BEGIN INIT INFO
# Provides:          pulse-xmpp-agent-machine 
# Required-Start:    $network
# Required-Stop:     $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start and stop pulse2 XMPP Agent
# Description:       Start and stop pulse2 XMPP Agent
### END INIT INFO

# Redhat based distributions specific
# chkconfig: 345 99 60
# description: Pulse2 XMPP Agent

# Variables
DESC="Pulse2 XMPP Agent"

if [ -e "/usr/share/pyshared/pulse_xmpp_agent/launcher.py" ]; then
       DAEMON="/usr/share/pyshared/pulse_xmpp_agent/launcher.py"
else
       DAEMON="/usr/lib/python2.7/dist-packages/pulse_xmpp_agent/launcher.py"
fi

# Function to start daemon
start () {
        echo -n "Starting ${DESC} : "
    if [ -f /var/run/machine.pid ]; then
        echo "already running"
        return 0
    fi
        python3 ${DAEMON} -t machine >/dev/null 2>&1
        RETVAL=$?
        # If return code is 0, everything went fine
        if [ ${RETVAL} -eq 0 ]
          then
            echo "done."
          else
            echo "failed."
        fi
        return ${RETVAL}
}

# Function to stop daemon
stop () {
    echo -n $"Stopping ${DESC} : "
    pkill -f agentxmpp
    # If return code is 0, everything went fine
        RETVAL=$?
    if [ ${RETVAL} -eq 0 ]
          then
            echo "done."
      else
            echo "failed."
    fi
        return ${RETVAL}
}

# Function to restart (run stop, then start)
restart() {
        stop
        sleep 1
        start
}

case $1 in
        start)
                start
        ;;
        stop)
                stop
        ;;
        restart | force-reload)
                restart
        ;;
        *)

        echo "Usage: ${0} {start|stop|restart|force-reload}"
        exit 1
esac

exit ${RETVAL}
