#! /bin/sh
#
# maxdb-server: startup file for MaxDB databases
#
# ATTENTION: the 'stop' action stops *all* running databases not only those
#            given in /etc/default/maxdb-server; this is necessary for this
#            script to make sense during shutdown
#
### BEGIN INIT INFO
# Provides: maxdb-server
# Required-Start: $local_fs $remote_fs $time
# Required-Stop: $local_fs $remove_fs
# Should-Start: $named maxdb-xserver
# Should-Stop: maxdb-xserver
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start/stop of default MaxDB databases
# Description: multiline_description
### END INIT INFO
#
# (c) 2004-2007 by Martin Kittel.
# Based on the example file written by
# Miquel van Smoorenburg <miquels@cistron.nl> and
# Ian Murdock <imurdock@gnu.ai.mit.edu>.
#

PATH=/sbin:/bin:/usr/sbin:/usr/bin

DBMCLI=/usr/bin/dbmcli
DBSTARTCMD=/usr/lib/maxdb/programs/bin/x_start
DBSTOPCMD=/usr/lib/maxdb/programs/bin/x_stop

NAME=maxdb-server
DESC="MaxDB databases"

# if dbmcli is not installed then we cannot start anything
test -x $DBMCLI -a -x $DBSTARTCMD -a -x $DBSTOPCMD || exit 0

getDbInfo()
{
    database=`cut -d: -f1 <<EOF
$1
EOF`
    db_user=`cut -d: -f2 <<EOF
$1
EOF`
}


# Include maxdb defaults if available
if [ -f /etc/default/maxdb-server ] ; then
    . /etc/default/maxdb-server
fi

set -e

case "$1" in
  start)

        if [ "$BACKGROUND" = "Y" -o "$BACKGROUND" = "YES" ]; then
            echo -n "Starting $DESC (in background):"
        else
            echo -n "Starting $DESC:"
        fi
        for dbInfo in $DATABASES; do
            getDbInfo $dbInfo
            if [ -n $database ]; then
                echo -n " $database"
                if [ "$BACKGROUND" = "Y" -o "$BACKGROUND" = "YES" ]; then
                    $DBSTARTCMD $database > /dev/null &
                else
                    $DBSTARTCMD $database > /dev/null
                fi
            fi
        done
        echo "."
	;;
  stop)
	echo -n "Stopping all $DESC:"
        # stop _all_ running databases
        for database in `dbmcli db_enum | awk '/running/ { print $1 }' | sort | uniq`; do
            if [ -n $database ]; then
                echo -n " $database"; $DBSTOPCMD $database > /dev/null
            fi
        done
        echo "."
	;;
  restart|force-reload)

	echo -n "Stopping all $DESC:"
        # stop all running databases
        for database in `dbmcli db_enum | awk '/running/ { print $1 }' | sort | uniq`; do
            if [ -n $database ]; then
                echo -n " $database"; $DBSTOPCMD $database > /dev/null
            fi
        done
        echo "."
        echo -n "Starting $DESC:"
        for dbInfo in $DATABASES; do
            getDbInfo $dbInfo
            if [ -n $database ]; then
                $DBSTARTCMD $database > /dev/null &
            fi
        done
        echo "."
	;;
  *)
	N=/etc/init.d/$NAME
	# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
	echo "Usage: $N {start|stop|restart|force-reload}" >&2
	exit 1
	;;
esac

exit 0
