#! /bin/sh
# Copyright (c) 2002 ALT Linux Team, Russia.
#
# Author: Igor Muratov <migor@altlinux.ru>
#
# /sbin/init.d/oracle-lsnr
#
# chkconfig: 35 81 19
# description:  The start/stop script for Oracle listener
#

. /etc/init.d/functions

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

# Setup environment
LOCKFILE=/var/lock/subsys/oracle-lsnr
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 "^#" /etc/oratab | /bin/awk -F: '{print $3}' \
	| grep "Y" >/dev/null || exit 1

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

start()
{
	action "Starting Oracle Net8 listener:" \
		su - $USER -c \"$ORACLE_HOME/bin/lsnrctl start\" || return
	RETVAL=$?
	[ $RETVAL -eq 0 ] && touch "$LOCKFILE"
	return $RETVAL
}
stop()
{
	action "Shutting down Oracle Net8 listener:" \
		su - $USER -c \"$ORACLE_HOME/bin/lsnrctl stop\" || return
	RETVAL=$?
	[ $RETVAL -eq 0 ] && rm -f "$LOCKFILE"
	return $RETVAL
}
restart()
{
	stop
	start
}
reload()
{
	echo -n "Reload Oracle Net8 listener"
	action "Reload Oracle Net8 listener:" \
		su - $USER -c \"$ORACLE_HOME/bin/lsnrctl reload\" || return
	RETVAL=$?
	return $RETVAL
}

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

exit $RETVAL
