#!/bin/sh
# Copyright (c) 2002 ALT Linux Team, Russia.
#
# Author: Igor Muratov <migor@altlinux.ru>
#
# /sbin/init.d/oracle-db
#
# chkconfig: 345 80 20
# description:  The start/stop script for Oracle - \
#       very powerful and popular SQL database engine.
#

. /etc/init.d/functions

SourceIfNotEmpty /etc/sysconfig/oracle

# Setup environment
LOCKFILE=/var/lock/subsys/oracle-db
USER=oracle
ORATAB=/etc/oratab
RETVAL=0

# Stop when all bases is disabled
[ -s $ORATAB ] \
	&& /bin/grep -v "^#" $ORATAB | /bin/cut -d: -f3 \
	| grep "Y" >/dev/null || exit 1

[ -x "$ORACLE_HOME/bin/dbstart" ] || exit 1
[ -x "$ORACLE_HOME/bin/dbshut" ] || exit 1

start()
{
	action "Starting Oracle database:" \
		su - $USER -s /bin/sh \
		-c "ORACLE_HOME=$ORACLE_HOME\ $ORACLE_HOME/bin/dbstart" \
		|| return
	RETVAL=$?
	[ $RETVAL -eq 0 ] && touch "$LOCKFILE"
	return $RETVAL
}
stop()
{
	action "Shutting down Oracle database:" \
		su - $USER -s /bin/sh \
		-c "ORACLE_HOME=$ORACLE_HOME\ $ORACLE_HOME/bin/dbshut" \
		|| return
	RETVAL=$?
	[ $RETVAL -eq 0 ] && rm -f "$LOCKFILE"
	return $RETVAL
}
restart()
{
	stop
	start
}

case "$1" in
    start)
		start
        ;;
    stop)
		stop
        ;;
    restart|reload)
		restart
        ;;
	condstop)
		if [ -e "$LOCKFILE" ]; then
			stop
		fi
		;;
	condrestart)
		if [ -e "$LOCKFILE" ]; then
			restart
		fi
		;;
    status)
        status oracle
		RETVAL=$?
        ;;
    *)
        echo "Usage: ${0##*/} {start|stop|restart|reload|condstop|condrestart|status}"
        RETVAL=1
        ;;
esac

exit $RETVAL

