#!/bin/sh
#
# Configuration script for Services
#
# (C) 2003-2010 Anope Team
# Contact us at team@anope.org
#
# Please read COPYING and README for further details.
#
# Based on the original code of Epona by Lara.
# Based on the original code of Services by Andy Church.
#
# $Id$
#



ANOPEPID="/home/chaz/services/data/services.pid"
ANOPROG="/home/chaz/services/bin/services"
LOG="/home/chaz/services/data/logs/"
ARCVERSION="1.3"

isAnopeRunning () {
if [ ! -f $ANOPEPID ] ; then
	echo "Warning: Anope is not currently running"
	exit 1
fi

PID=`cat $ANOPEPID`

if [ ! `ps auxw | grep $ANOPROG | grep $PID | grep -v -c grep` ] ; then
	echo "Warning: Anope is not currently running"
	exit 1
fi
}

if [ ! -f $ANOPROG ] ; then
	echo "Error: $ANOPROG cannot be accessed"
	exit 1
fi


if [ "$UID" = "0" ] ; then
  echo "######################################";
  echo "# Warning: Do NOT run Anope as root! #";
  echo "######################################";
  exit 1
fi

if [ "$1" = "start" ] ; then

if [ -f $ANOPEPID ] ; then
	PID=`cat $ANOPEPID`
	if [ `ps auxw | grep $ANOPROG | grep $PID | grep -v -c grep` = 1 ] ; then
		echo "Warning! Anope is already running"
		exit 1
	fi
fi
	echo "Starting Anope"
	shift
	$ANOPROG $*
	sleep 1
		if [ ! -f $ANOPEPID ] ; then
	        echo "Unfortunately it seems Anope did not start successfully"
                echo "This error has been logged in your Anope Log file"
                echo "Located in "$LOG""
                echo "This may help you diagnose the problem"
                echo "Further help may be available from http://www.anope.org/"
		exit 1
		fi
		PID=`cat $ANOPEPID`
		if [ ! `ps auxw | grep $ANOPROG | grep $PID | grep -v -c grep` ] ; then
		echo "Unfortunately it seems Anope did not start successfully"
		echo "This error has been logged in your Anope Log file"
		echo "Located in "$LOG""
		echo "This may help you diagnose the problem"
		echo "Further help may be available from http://www.anope.org/"
		exit 1
		fi

elif [ "$1" = "stop" ] ; then
	isAnopeRunning
	echo "Terminating Anope"
	kill -15 `cat $ANOPEPID`

elif [ "$1" = "status" ] ; then
	if [ -f $ANOPEPID ] ; then
		PID=`cat $ANOPEPID`
        	if [ `ps auxw | grep $PID | grep -v -c grep` = 1 ] ; then
		        echo "Anope is currently running"
		        exit 1
	        fi
	fi

	echo "Anope is not currently running"

## :/ SIGUSR2 is ignored after the first restart so we stop / start Anope for now ##
elif [ "$1" = "restart" ] ; then
	isAnopeRunning
	echo "Restarting Anope"
	kill -15 `cat $ANOPEPID`
	sleep 1
	shift
	$ANOPROG $*

elif [ "$1" = "rehash" ] ; then
	isAnopeRunning
	echo "Saving Databases and Rehashing Configuration"
	kill -12 `cat $ANOPEPID`

elif [ "$1" = "version" ] ; then
	$ANOPROG -version

elif [ "$1" = "help" ] ; then
	if [ "$2" = "paramlist" ] ; then
		$ANOPROG -help
		else
		echo "AnopeRC is a remote control script for easy"
		echo "controlling of Anope from the command console"
		echo "$0 start          Start Anope"
		echo "	   	       	Additional parameters may be passed"
		echo "	   	       	(e.g. $0 start -nofork)"
		echo "	   	       	For a list type $0 $1 paramlist"
		echo "$0 stop           Shutdown Anope"
		echo "$0 status         Show Anope's Status"
		echo "$0 restart        Restart Anope (Databases will be saved)"
		echo "			Additional parameters may be passed"
		echo "			(e.g. $0 restart -logchan)"
		echo "			For a list type $0 $1 paramlist"
		echo "$0 rehash         Rehash Configuration and Save Databases"
		echo "$0 version        Return Anope Version and Build Information"
		echo "$0 help           Show this help menu"
		echo "If you need further help please check the /docs/"
		echo "folder or make use of our extensive online support at"
		echo "http://www.anope.org/"
	fi

else
	echo "Anope Remote Control ($ARCVERSION)"
	echo "Usage: $0 [start|stop|status|restart|rehash|version|help]"
fi
