#! /bin/sh
#
# afs-client	Start/Stop the OpenAFS server
# 
# chkconfig: 345 59 21
# description:  OpenAFS is a distributed filesystem.

. /etc/rc.d/init.d/functions

SYSCNF=/etc/sysconfig/afs
[ -f $SYSCNF ] && . $SYSCNF

on_network() {
    ADDRS=`LANG=C ifconfig -a | grep 'inet addr' | grep -v 127.0.0.1 | wc -l`
    if [ "$ADDRS" = "" ]; then
	echo afs: No interfaces with IP address 1>&2
	return 1
    elif [ $ADDRS = 0 ]; then
	echo afs: No interfaces with IP address 1>&2
	return 1
    fi
    return 0
}

rhstatus() {
    status bosserver
}

case "$1" in 
    start)
	if [ ! -f /var/lock/subsys/afs-server ]; then
	    on_network || exit 1
	    echo "Starting AFS server..... "
	    # Start bosserver, it if exists
	    /usr/afs/bin/bosserver 
	    touch /var/lock/subsys/afs-server
	fi
	;;

    stop)
	if [ -f /var/lock/subsys/afs-server ]; then
	# Stop AFS
	echo "Stopping AFS server..... "

	/usr/bin/bos shutdown localhost -localauth -wait
	killall -HUP bosserver

	rm -f /var/lock/subsys/afs-server
	;;

    status)
	rhstatus
	;;

    restart)
	# Restart AFS
	$0 stop
	$0 start
	;;

    condrestart)
        [ -f /var/lock/subsys/afs-server ] && restart || :
        ;;

  *)
	echo Usage: 'afs <start|stop|status|restart|condrestart>'

esac

exit 0

action fool the Red Hat initscripts
