#!/usr/bin/sh
#
# Copyright (C) 2006, Adam Cecile for Linbox FAS
#
# This program 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.
#
# This program 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 this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
### BEGIN INIT INFO
# Provides:          pulse2-package-server
# Required-Start:    $network mysql
# Required-Stop:     $network mysql
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start and stop pulse2 package server
# Description:       Start and stop pulse2 package server
### END INIT INFO

# Redhat based distributions specific
# chkconfig: 345 99 60
# description: MMC agent

# Variables
DESC="Pulse2 Package Server : pulse2-package-server"
DAEMON="/usr/sbin/pulse2-package-server"
PIDFILE="/var/run/pulse2-package-server.pid"

# Return PID of already running mmc-agent, if any
# If not, return 0
get_running_pid() {
    local pid=0
    if [ -e ${PIDFILE} ]
    then
	if ps --no-headers `cat ${PIDFILE}` > /dev/null
	then
	    # PIDFILE content correspond to a pid
	    pid=`cat ${PIDFILE}`
	else
	    # PIDFILE content is errorneous,
	    # remove the file
	    rm -f ${PIDFILE}
	fi
    fi

    echo $pid
}

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

# Function to stop daemon
stop () {
    echo -n "Stopping ${DESC} : "
    pid=$(get_running_pid)
    if [ $pid -ne 0 ]
    then
        # If there's one, get the pid and send SIG 15
        kill -15 $pid
        # Get return code
        RETVAL=$?
    else
	RETVAL=0
    fi
    if [ $RETVAL -eq 0 ]
    then
	rm -f ${PIDFILE}
        echo "done."
    else
        echo "failed."
    fi
}

# Function to restart (run stop, then start)
restart() {
    stop
    sleep 2
    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}
