#!/bin/sh
#
# chkconfig: 345 95 05
# description: Starts and stops MBSE BBS.
#
# For RedHat, E-Smith and Mandrake SYSV init style.
# $Id$
#
# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 1

# 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

export MBSE_ROOT

SU="su"
#
# From RedHat version 6.1 and up the behaviour of "su" has changed.
# Extra tests are added for the RedHat e-smith server distribution,
# this is a special distribution based on RedHat.
# For Mandrake we follow the same behaviour.
#
if [ -f /etc/mandrake-release ]; then
    #
    # Mandrake 6.0 and newer, use "su -"
    #
    RHR="`cat /etc/mandrake-release | awk '{ print $4 }' | tr -d .`"
    if [ $RHR -gt 60 ]; then
	SU="su -"
    fi
else
    if [ -f /etc/redhat-release ]; then
	if [ -z "`grep e-smith /etc/redhat-release`" ]; then
	    # Standard RedHat
	    RHR=`cat /etc/redhat-release | awk '{ print $5 }' | tr -d .`
	else
	    # E-Smith server based on RedHat
	    RHR=`cat /etc/redhat-release | awk '{ print $13 }' | tr -d . | tr -d \)`
	fi
	if [ $RHR -gt 60 ]; then
	    SU="su -"
	fi
    fi
fi


# See how we were called.
case "$1" in
  start)
	echo -n "Starting MBSE BBS: "
	rm -f $MBSE_ROOT/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 "opened"
	fi
	touch /var/lock/subsys/mbsed
	;;
  stop)
	echo -n "Shutting down MBSE BBS: "
	if [ -f $MBSE_ROOT/etc/config.data ]; then
		echo -n "logoff users "
		$SU mbse -c '$MBSE_ROOT/bin/mbstat close wait -quiet' >/dev/null
		echo -n "done, "
	fi
	echo -n "stop mbtask: "
	killproc mbtask -15
	rm -f /var/lock/subsys/mbsed
	echo ""
#	echo "done."
	;;
  status)
	status mbtask
	;;
  restart|reload)
	$0 stop
	$0 start
	;;
  *)
	echo "Usage: $0 {start|stop|restart|reload|status}"
	exit 1
esac
exit 0
