#!/bin/sh

###
### defaults
###
D_CONFIG=/usr/local/etc/wcol.conf
D_PIDFILE=/var/run/wcol.pid
BSD=1
SYSV=


while [ $# -ge 1 ]
do
    case "$1" in
    '-h')
        echo "$0 - Kill Wcol processes"
        echo ""
        echo "usage: $0 [-h]"
        echo "       $0 [-c config-file] [-p pid-file] [-b|-s] [-q] [-f]"
        echo ""
        echo "options:  -h      help"
        echo "          -b      using BSD style 'ps'"
        echo "          -s      using SYSV style 'ps'"
        echo "          -q      quiet"
        echo "          -f      force, kill w/o pid-file"
        echo ""
        echo "example:"
        echo "      % $0 -b"
        echo "      % $0 -b -q -f"
        echo ""

        exit 0
        ;;
    '-b')
        BSD=1
        ;;
    '-s')
        SYSV=1
        ;;
    '-c')
        D_CONFIG=$2
        shift
        ;;
    '-p')
        D_PIDFILE=$2
        shift
        ;;
    '-q')
        QUITE=1
        ;;
    '-f')
        FORCE=1

        if [ x"$BSD"x != xx ] ; then
            PIDS=`ps ax | awk '/awk/{next} / wcol( )?/{print $1}\
				/ .\/wcol( )?/{print $1}' | sort -nr`
        else
            PIDS=`ps -el | awk '/awk/{next}\
				/ .\/wcol( )?/{print $1}/ wcol( )?/{print $4}' | sort -nr`
        fi
        ;;
    esac

    shift
done


: ${CONFIG:=$D_CONFIG}
if [ -f $CONFIG ] ; then
	echo "found config file" > /dev/null
else
    echo "no config-file"
    exit 0
fi

PIDFILE=`cat $CONFIG |tr A-Z a-z |awk '/^#/{next}/^pidfile/{print $2}'`
: ${PIDFILE:=$D_PIDFILE}


###

if [ x"$QUITE"x = xx ] ; then
    echo "CONFIG  '$CONFIG'"
    echo "PIDFILE '$PIDFILE'"
    echo "PID     '$PID'"
    if [ x"$BSD"x != xx ] ; then
        echo "PSSTYLE BSD"
    else
        echo "PSSTYLE SYSV"
    fi

    echo ""
    echo "; before"
    if [ x"$BSD"x != xx ] ; then
        ps ax | awk '/awk/{next}/ wcol( )?/{print}'     # BSD
    else
        ps -el | awk '/awk/{next}/ wcol( )?/{print}'    # SYSV
    fi
fi


###

if [ x"$FORCE"x = xx ] ; then

	if [ -f $PIDFILE ] ; then
		PID=`cat $PIDFILE`
	else
		echo "no pid-file"
		exit 0
	fi

    kill -TERM $PID
    rm -f $PIDFILE
else
    if [ x"$PIDS"x != xx ] ; then
        kill -TERM $PIDS
        sleep 1
        kill -KILL $PIDS
    else
        echo "no wcol's process"
        exit 0
    fi
fi

sleep 1

###

if [ x"$QUITE"x = xx ] ; then
    echo ""
    echo "; after "
    if [ x"$BSD"x != xx ] ; then
        ps ax | awk '/awk/{next}/ wcol( )?/{print}'     # BSD
    else
        ps -el | awk '/awk/{next}/ wcol( )?/{print}'    # SYSV
    fi
fi

