#!/bin/sh
# 
# chkconfig: 345 80 20
# description:	Starts all zope servers or single zope server
#
#
# Source function library.
. /etc/init.d/functions

#Z2=/usr/lib/zope/z2.py
#[ -e "$Z2" ] || exit

#LOCKFILE=/var/lock/subsys/syslogd
RETVAL=0
. /etc/sysconfig/zope_default

set_environment() 
{
	. /etc/sysconfig/zope_default

	. /etc/sysconfig/zope/$1

	PYTHONPATH="$SOFTWARE_HOME:$PYTHONPATH"

	CONFIG_FILE=${ZOPE_CONFIG_FILE:-$ZOPE_INSTANCE_HOME/etc/zope.conf}

	INSTANCE_HOME="$ZOPE_INSTANCE_HOME"

	export PYTHONPATH INSTANCE_HOME SOFTWARE_HOME

	ZOPE_RUN="$SOFTWARE_HOME/Zope2/Startup/zopectl.py"

	export LC_ALL

	#ln -sf /var/log/zope/$1.log /var/log/zope.$1.log 
}

debug()
{
	set_environment $1;
	/usr/bin/python "$ZOPE_RUN" -d -C "$CONFIG_FILE"  <<EOF
stop
fg
start
EOF
}

start()
{
	echo -n "Starting Zope server for $1: "
	set_environment $1;

	if [  "$ignore" != 1 -o "$ignore_yes" == 0 ]; then
		/usr/bin/python "$ZOPE_RUN" -d -C "$CONFIG_FILE" start
		RETVAL=$?
		echo_success
	else :
		echo_passed
	fi;
	echo
}

stop()
{
	echo -n "Shutting down Zope server for $1: "
	set_environment $1;
	/usr/bin/python "$ZOPE_RUN" -d -C "$CONFIG_FILE" stop
	RETVAL=$?
	echo_success
}

status()
{
	echo -n "Status of Zope server for $1: "
	set_environment $1;

	/usr/bin/python "$ZOPE_RUN" -d -C "$CONFIG_FILE" status
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && rm -f "$LOCKFILE"
	return $RETVAL
}


pack()
{
	echo -n "Pack Zope server for $1: "
	set_environment $1;
	if [ "$ignore" != 1 -o "$ignore_yes" == 0  ]; then
		/usr/bin/python "$ZOPE_RUN" -d -C "$CONFIG_FILE" <<EOF
stop
run /usr/lib/zope/lib/python/Zope2/Startup/zctl_zope_pack.py "$days"
start
EOF
	else
		/usr/bin/python "$ZOPE_RUN" -d -C "$CONFIG_FILE" <<EOF
run /usr/lib/zope/lib/python/Zope2/Startup/zctl_zope_pack.py "$days"
EOF
	fi
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && rm -f "$LOCKFILE"
	return $RETVAL
}



# See how we were called.

command=$1
shift
if [ "$@" ]; then
   instances=$@
   ignore_yes=0
else
   instances=$(command ls /etc/sysconfig/zope/*|grep -vE "*~|^\.*$")
   ignore_yes=1
fi;


for instance in $instances; do
   instance=$(basename $instance)
   case "$command" in 
	start)
		start $instance
		;;

	debug)
		debug $instance
		;;

	stop)
		stop $instance
		;;
	status)
		status $instance
		;;

	reload)
		stop $instance
		start $instance
		;;

	restart)
		stop $instance
		start $instance
		;;

	pack)
		pack $instance
		;;

	control)
		set_environment $instance
		/usr/bin/python "$ZOPE_RUN" -d -C "$CONFIG_FILE"
		;;

	help)
		echo -e "Usage:"
		echo -e "\tSUPPRESS_SITEROOT=1 ${0##*/} [...]"
		;;

	*)
		echo "Usage: ${0##*/} {start|stop|status|restart|help}"
		RETVAL=1
		break;
   esac
done
exit $RETVAL
