#! /bin/sh -e
#
# interchange.init - Interchange start-stop script
#
# Copyright (C) 2000,2001,2002,2003,2007,2008,2009 Stefan Hornburg (Racke) <racke@linuxia.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
# MA  02110-1301  USA.
#
### BEGIN INIT INFO
# Provides:          interchange
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Should-Start:      mysql postgresql
# Should-Stop:       mysql postgresql
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/interchange
NAME=interchange
DESC="Interchange Server"

test -f $DAEMON || exit 0

# modes that Interchange uses 
# possible values are
# --unix            Unix mode only (default)
# --inetmode        Internet mode only
# --unix --inetmode Unix and Internet mode
MODE="--unix"
USER=interchange

if [ ! -f /etc/interchange/init.cfg ]; then
	echo "ERROR: /etc/interchange/init.cfg is missing."
	exit 1
fi

. /etc/interchange/init.cfg

if [ "$GPGHOME" ]; then
	export GNUPGHOME=$GPGHOME
fi

case "$1" in
  start)
	# skip start during unfinished installation
	if [ -f /var/run/interchange-install ]; then
		exit 0
	fi
	# create runtime directory if necessary
	if [ ! -d /var/run/interchange ]; then
		mkdir -m 755 /var/run/interchange
		chown $USER:$GROUP /var/run/interchange
	fi
	echo -n "Starting $DESC: "
	start-stop-daemon --start --quiet --pidfile /var/run/interchange/$NAME.pid \
		--chuid $USER --exec $DAEMON -- --serve $MODE \
        -f /etc/interchange/interchange.cfg
	;;
  stop)
	# skip stop during unfinished installation
	if [ -f /var/run/interchange-install ]; then
		exit 0
	fi

	echo -n "Stopping $DESC: "

	start-stop-daemon --stop --oknodo --pidfile /var/run/interchange/$NAME.pid
	echo "$NAME."
	;;
  #reload)
	#
	#	If the daemon can reload its config files on the fly
	#	for example by sending it SIGHUP, do it here.
	#
	#	If the daemon responds to changes in its config file
	#	directly anyway, make this a do-nothing entry.
	#
	# echo "Reloading $DESC configuration files."
	# start-stop-daemon --stop --signal 1 --quiet --pidfile \
	#	/var/run/$NAME.pid --exec $DAEMON
  #;;
  restart|force-reload)
	#
	#	If the "reload" option is implemented, move the "force-reload"
	#	option to the "reload" entry above. If not, "force-reload" is
	#	just the same as "restart".
	#

	echo -n "Restarting $DESC: "
	start-stop-daemon --stop --pidfile /var/run/interchange/$NAME.pid --oknodo
	echo "$NAME."
    sleep 1

    start-stop-daemon --start --quiet --pidfile /var/run/interchange/$NAME.pid \
		--chuid $USER --exec $DAEMON -- --serve $MODE \
        -f /etc/interchange/interchange.cfg
    ;;
  *)
	N=/etc/init.d/$NAME
	# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
	echo "Usage: $N {start|stop|restart|force-reload}" >&2
	exit 1
	;;
esac

exit 0
