blob: 5cfc91b9e70a7a732fb0e8efe31d861db3cf3ae9 [file] [log] [blame]
#!/sbin/runscript
# 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}
}