#! /bin/sh

### BEGIN INIT INFO
# Provides:          sobby
# Required-Start:    $remote_fs $network
# Required-Stop:     $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: collaborative text editor service
# Description:       Sobby is a dedicated server for collaborative text
#                    editor using the same protocol as Gobby.
### END INIT INFO

set -e

PRG=sobby
DAEMON=/usr/bin/$PRG
PIDFILE=/var/run/$PRG.pid
DESC="collaborative text editor service"


test -x $DAEMON || exit 0

. /lib/lsb/init-functions

# defaults
SOBBY_ENABLED=true
SOBBY_CONFIG=/etc/sobby.conf
SOBBY_SESSION_FILE=/var/lib/sobby/autosave.obby
[ -f /etc/default/$PRG ] && . /etc/default/$PRG

[ "$SOBBY_ENABLED" = "true" ] || exit 0

create_session_file() {
	[ -f "$SOBBY_SESSION_FILE" ] && return
	cat > "$SOBBY_SESSION_FILE" <<EOF
!obby
session version="0.4.7"
 user_table
 chat
EOF
	chown sobby: "$SOBBY_SESSION_FILE"
}

do_start() {
	[ ! -f "$SOBBY_SESSION_FILE" ] && create_session_file
	log_daemon_msg "Starting $DESC"
	log_progress_msg "$PRG"
	if start-stop-daemon --start --quiet --background \
			--pidfile $PIDFILE --make-pidfile \
			--chuid sobby --chdir /var/lib/sobby \
			--exec $DAEMON -- -c "$SOBBY_CONFIG" \
			--autosave-file "$SOBBY_SESSION_FILE" \
			"$SOBBY_SESSION_FILE" ; then
		log_end_msg 0
	else
		log_end_msg 1
	fi
}

do_stop() {
	log_daemon_msg "Stopping $DESC"
	log_progress_msg "$PRG"
	start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
	log_end_msg $?
	rm -f $PIDFILE
}

case "$1" in
	start)
		do_start
	;;
	stop)
		do_stop
	;;
	reload|force-reload|restart)
		do_stop
		do_start
	;;
	status)
		status_of_proc -p $PIDFILE $DAEMON $PRG
	;;
	*)
		echo "Usage: /etc/init.d/$PRG {start|stop|reload|force-reload|restart|status}"
		exit 1
	;;
esac

exit 0

