#!/bin/bash
#
# chkconfig: 2345 92 10
# description: IP accounting visualizer and analyzer fo Cisco routers.
# processname: ipacco
# pidfile: /var/run/ipacco.pid
# config: /etc/ipacco/ipacco-datapump.cfg

# $Id: ipacco.in,v 1.2 2005/05/23 11:20:40 mpolk Exp $

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

prog=ipacco
DATAPUMP=/usr/share/ipacco/ipacco-datapump.tcl
CFGFILE=/etc/ipacco/ipacco-datapump.cfg
PIDFILE=/var/run/ipacco.pid
LOCKFILE=/var/lock/subsys/ipacco

RETVAL=0

start() {
	echo -n $"Starting ipacco-datapump daemon: "
	if [ ! -f "$CFGFILE" ]; then
	    echo $"($prog is not configured)"
	    exit 0
	fi
	
	$DATAPUMP -c $CFGFILE -d &
	RETVAL=$?
	PID=$!
	if [ $RETVAL -eq 0 ] ; then
	    echo $PID > $PIDFILE
	    touch $LOCKFILE
	    success $"${prog} start" 
	else
	    failure $"${prog} start"
	fi
	echo
}

stop() {
	echo -n $"Shutting down ipacco-datapump daemon: "
	if [ ! -f "$PIDFILE" ]; then
	    echo $"${prog} is not running"
	    RETVAL=1
	else
	    read PID < $PIDFILE
	    kill $PID
	    RETVAL=$?
	fi
	

	if [ $RETVAL -eq 0 ] ; then
	    rm -f $PIDFILE $LOCKFILE
	    success $"${prog} stop" 
	else
	    failure $"${prog} stop"
	fi
	echo
}

status() {
        # First try "pidof"
        PID=`ps ax | grep [i]pacco-datapump | sed "s/^ \+//" | cut -d " " -f 1`
        if [ -n "$PID" ]; then
            echo $"${prog} (pid $PID) is running..."
            return 0
        fi

        # Next try "/var/run/*.pid" files
        if [ -f $PIDFILE ] ; then
            read PID < $PIDFILE
            if [ -n "$PID" ]; then
                echo $"${prog} dead but pid file exists"
                return 1
            fi
        fi
        # See if /var/lock/subsys/${proog} exists
        if [ -f $LOCKFILE ]; then
            echo $"${prog} dead but subsys locked"
            return 2
        fi
        echo $"${prog} is stopped"
        return 3
}


case "$1" in
  start)
	start
	;;
  stop)
	stop
	;;
  restart|reload)
	stop
	start
	RETVAL=$?
	;;
  condrestart)
	if [ -f $LOCKFILE ]; then
	    stop
	    start
	    RETVAL=$?
	fi
	;;
  status)
	status
	RETVAL=$?
	;;
  *)
	echo $"Usage: $0 {start|stop|restart|condrestart|status}"
	exit 1
esac

exit $RETVAL

