#!/sbin/openrc-run # Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 RUNDIR=/var/run/sabnzbd depend() { need net } get_var() { echo $(sed -n \ '/^\[misc]/,/^'$1'/ s/^'$1' = \([[:alnum:].]\+\)[\r|\n|\r\n]*$/\1/p' \ "${SABNZBD_CONFIGFILE}") } get_port() { if [ "$(get_var 'enable_https')" -eq 1 ]; then echo $(get_var 'https_port') else echo $(get_var 'port') fi } get_addr() { local host=$(get_var 'host') local protocol='http' [ "${host}" == "0.0.0.0" ] && host=localhost [ "$(get_var 'enable_https')" -eq 1 ] && protocol='https' echo "${protocol}://${host}:$(get_port)" } get_pidfile() { echo "${RUNDIR}/sabnzbd-$(get_port).pid" } start() { ebegin "Starting SABnzbd" checkpath -q -d -o ${SABNZBD_USER}:${SABNZBD_GROUP} -m 0770 "${RUNDIR}" start-stop-daemon \ --quiet \ --start \ --user ${SABNZBD_USER} \ --group ${SABNZBD_GROUP} \ --name sabnzbd \ --background \ --pidfile "$(get_pidfile)" \ --exec /usr/bin/sabnzbd \ -- \ --config-file "${SABNZBD_CONFIGFILE}" \ --logging "${SABNZBD_LOGGING}" \ --daemon \ --pid "${RUNDIR}" eend $? } start_pre() { if [ "$RC_CMD" == "restart" ]; then local pidfile=$(get_pidfile) while [ -e ${pidfile} ]; do sleep 1 done fi return 0 } stop() { local api_key=$(get_var 'api_key') local addr=$(get_addr) local rc=1 ebegin "Stopping SABnzbd @ ${addr}" # This can only work if we have enabled the API if [ -n "${api_key}" -a "$(get_var 'disable_api_key')" -ne 1 ]; then local ret einfo "Attempting web-based shutdown @ ${addr}" # SABnzbd will return "ok" if shutdown is successful ret=$(/usr/bin/curl -k -s "${addr}/sabnzbd/api?mode=shutdown&apikey=${api_key}") [ "${ret}" == "ok" ] && rc=0 fi if [ "${rc}" -ne 0 ]; then einfo "Falling back to SIGTERM, this may not work if you restarted via the web interface" start-stop-daemon \ --stop \ --pidfile $(get_pidfile) \ --retry SIGTERM/1/SIGKILL/5 rc=$? fi eend ${rc} }