#!/sbin/openrc-run
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-irc/quassel/files/quasselcore.init,v 1.8 2011/08/19 11:43:49 scarabeus Exp $

depend() {
	need localmount net
	after bootmisc postgres
}

CORE="$(which quasselcore)"
PID="/run/quassel.pid"
LOGFILE=${LOGFILE:-"/var/log/quassel.log"}
CONFIGDIR=${CONFIGDIR:-"/var/lib/quassel"}
QUASSEL_USER=${QUASSEL_USER:-"quassel"}

checkconfig() {
	# set defaults
	LOGLEVEL=${LOGLEVEL:-"Info"}

	# check config folder
	if [ ! -d "${CONFIGDIR}" ]; then
		mkdir "${CONFIGDIR}" || return 1
	fi
	# permissions always changed just to avoid runtime issues
	chown -R "${QUASSEL_USER}":"${QUASSEL_USER}" "${CONFIGDIR}" || return 1

	# check log file
	if [ ! -e "${LOGFILE}" ]; then
		touch "${LOGFILE}" || return 1
	fi
	# permissions always changed just to avoid runtime issues
	chown "${QUASSEL_USER}":"${QUASSEL_USER}" "${LOGFILE}" || return 1
}

start() {
	checkconfig || return 1

	ebegin "Starting Quassel Core"

	if [ -n "${RC_UNAME}" ]; then
		# running on baselayout-2/openrc
		start-stop-daemon --start --user "${QUASSEL_USER}" --background --make-pidfile \
		--pidfile "${PID}" \
		--exec "${CORE}" -- --logfile="${LOGFILE}" --loglevel="${LOGLEVEL}" \
		${LISTEN:+--listen="${LISTEN}"} ${PORT:+--port="${PORT}"} \
		--configdir="${CONFIGDIR}"
	else
		# running on baselayout-1
		start-stop-daemon --start --chuid "${QUASSEL_USER}" --background --make-pidfile \
		--pidfile "${PID}" --env HOME="${CONFIGDIR}" \
		--exec "${CORE}" -- --logfile="${LOGFILE}" --loglevel="${LOGLEVEL}" \
		${LISTEN:+--listen="${LISTEN}"} ${PORT:+--port="${PORT}"} \
		--configdir="${CONFIGDIR}"
	fi
	eend $?
}

stop() {
	ebegin "Stopping Quassel Core"
	start-stop-daemon --stop --pidfile "${PID}" --exec "${CORE}"
	eend $?
}
