#!/bin/sh
#
# Note: this is not 100% Debian style, at least it works for now.
# $Id$
# 
# description: Starts and stops the MBSE BBS.
#
# For Debian SYSV init style.

# Find the MBSE_ROOT from the /etc/passwd file.
MBSE_ROOT=`cat /etc/passwd | grep mbse: | awk -F ':' '{ print $6}'`

if [ "$MBSE_ROOT" = "" ]; then
	echo "MBSE BBS: No 'mbse' user in the password file."
	exit 1
fi

if [ ! -d $MBSE_ROOT ]; then 
	echo "MBSE BBS: Home directory '$MBSE_ROOT' not found."
	exit 1
fi

PATH=/sbin:/bin:/usr/sbin:/usr/bin:$MBSE_ROOT/bin
DAEMON=$MBSE_ROOT/bin/mbtask
NAME=mbsebbs
DESC="MBSE BBS"

export MBSE_ROOT

# See how we were called.
case "$1" in
  start)
	echo -n "Starting $DESC: "
	rm -f $MBSE_ROOT/var/run/*
	rm -f $MBSE_ROOT/var/sema/*
	rm -f $MBSE_ROOT/var/*.LCK
	rm -f $MBSE_ROOT/tmp/mb*
	su mbse -c '$MBSE_ROOT/bin/mbtask' >/dev/null
	echo -n "mbtask "
	sleep 2
	if [ -f $MBSE_ROOT/etc/config.data ]; then
	    su mbse -c '$MBSE_ROOT/bin/mbstat open -quiet'
	    echo -n "opened "
	fi
	echo "done."
	;;
  stop)
	echo -n "Stopping $DESC: "
	if [ -f $MBSE_ROOT/var/run/mbtask ]; then
	    echo -n "logoff users "
	    su mbse -c '$MBSE_ROOT/bin/mbstat close wait -quiet' >/dev/null
	    echo -n " stopping mbtask"
	    kill `cat $MBSE_ROOT/var/run/mbtask`
	    i=10 
	    doit=1
	    while let 'i > 0' && let 'doit != 0'
	    do
		if [ -f $MBSE_ROOT/var/run/mbtask ]; then
		    echo -n "."
		    sleep 1
		    let i=i-1
		else
		    doit=0
		fi
	    done
	    if [ -f $MBSE_ROOT/var/run/mbtask ]; then
		kill -9 `cat $MBSE_ROOT/var/run/mbtask`
	    fi
	    echo " done."
	else
	    echo "already stopped."
	fi
	;;
  force-reload|restart)
	$0 stop
	$0 start
	;;
  *)
	N=/etc/init.d/$NAME
	echo "Usage: $N {start|stop|restart|force-reload}" >&2
	exit 1
esac
exit 0