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

. /etc/init.d/functions

SourceIfNotEmpty /etc/profile.d/oracle8.sh
SourceIfNotEmpty /etc/profile.d/oracle9.sh

# Setup environment
LOCKFILE=/var/lock/subsys/oracle-db
USER=oracle
ORATAB=/etc/oratab
HOMEDIR=`grep ^$USER: /etc/passwd | /bin/awk -F: '{print $6}'`
RETVAL=0

# Stop when all bases is disabled
[ -s $ORATAB ] \
	&& /bin/grep -v "^#" $ORATAB | /bin/awk -F: '{print $3}' \
	| 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 -c "$ORACLE_HOME/bin/dbstart" || return
	RETVAL=$?
	[ $RETVAL -eq 0 ] && touch "$LOCKFILE"
	return $RETVAL
}
stop()
{
	action "Shutting down Oracle database:" \
		su - $USER -c "$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

