#!/bin/sh
#
# tango-db
#
# description:       Tango control system database daemon
# chkconfig:         2345 80 20
#
. /etc/rc.d/init.d/functions

PREFIX=/usr/local
TANGO_CONFIG=/etc/tangorc
MYSQL_CONFIG=/etc/sysconfig/tango-db

PID_FILE=/var/run/tango-db.pid
LOCK_FILE=/var/lock/subsys/tango-db

# set up environment
PATH=/bin:/sbin:$PREFIX/bin

[ -f $TANGO_CONFIG ] && . $TANGO_CONFIG
[ -f $MYSQL_CONFIG ] && . $MYSQL_CONFIG

if [ -z $TANGO_HOST ]; then
    echo $"error: TANGO_HOST not set"
    exit 1
fi

HOST=`echo $TANGO_HOST | awk -F ":" '{print $1}'`
PORT=`echo $TANGO_HOST | awk -F ":" '{print $2}'`

DAEMON=Databaseds
DAEMON_ARGS="2 -ORBendPoint giop:tcp:$HOST:$PORT"

RETVAL=0
start()
{
    echo -n $"Starting Tango database daemon"

    status mysqld >/dev/null
    if [ $? -eq 3 ]; then
	echo
	echo -n $"MySQL server is not running!"
	RETVAL=1
    else
	status -p $PID_FILE tango-db >/dev/null
	if [ $? -eq 0 ]; then
	    echo
	    echo -n $"Database server already running"
	    RETVAL=0
	else
	    runuser -m tango -c \
		"MYSQL_USER=$MYSQL_USER \
		 MYSQL_PASSWORD=$MYSQL_PASSWORD \
		 $DAEMON $DAEMON_ARGS >/dev/null 2>&1 &"
	    sleep 2

	    # check if daemon survived..
	    pidofproc $DAEMON > $PID_FILE
	    RETVAL=$?
	    if [ $RETVAL -eq 0 ]; then
		touch $LOCK_FILE
	    else
		rm -f $PID_FILE
	    fi
	fi
    fi

    [ $RETVAL -eq 0 ] && success || failure
    echo
    return $RETVAL
}

stop()
{
    echo -n $"Stopping Tango database daemon"

    status -p $PID_FILE tango-db >/dev/null
    if [ $? -eq 3 ]; then
	echo
	echo -n $"Database server is not running"
	RETVAL=0
    else
	killproc -p $PID_FILE $DAEMON
	RETVAL=$?
	[ $RETVAL -eq 0 ] && rm -f $PID_FILE $LOCK_FILE
    fi

    [ $RETVAL -eq 0 ] && success || failure
    echo
    return $RETVAL
}

restart()
{
    stop
    start
}

# See how we were called.
case "$1" in
    start )
    start
    ;;
    stop )
    stop
    ;;
    status )
    status -p $PID_FILE tango-db
    ;;
    restart | reload )
    restart
    ;;
    condrestart )
    [ -f $LOCK_FILE ] && restart || :
    ;;
    *)
    echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
    exit 1
esac

exit 0
