You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/net-misc/hylafaxplus/files/hylafaxplus-init

177 lines
3.1 KiB

#!/sbin/runscript
# Copyright 1999-2012 Gentoo Foundation
# Author Geaaru
# Distributed under the terms of the GNU General Public License v2
opts="zap"
depend() {
use lo
}
checkconfig() {
ebegin "Check hylafax server configuration..."
if [ x$spooldir == x ] ; then
eerror "No spooldir directory defined"
return 1
else
SPOOL=$spooldir
einfo "Use spool directory $SPOOL"
fi
if [ x$mode == x ] ; then
eerror "No mode defined"
return 1
fi
if [ ! -f $SPOOL/etc/setup.cache ] ; then
eerror "No $SPOOL/etc/setup.cache file founded. Use faxsetup command"
return 1
fi
if [[ x$hfaxd == x || ! -f $hfaxd ]] ; then
eerror "No hfaxd daemon founded"
return 1
fi
if [[ x$faxq == x || ! -f $faxq ]] ; then
eerror "No faxq program founded"
return 1
fi
if [[ x$faxgetty == x || ! -f $faxgetty ]] ; then
eerror "No faxgetty program founded"
return 1
fi
if [ x$faxbind == x ] ; then
eerror "No binding address supply"
return 1
fi
if [ x$piddir == x ] ; then
PIDDIR=$SPOOL
else
PIDDIR=$piddir
fi
hfaxd_args="-l $faxbind -q $SPOOL"
case $mode in
newproto)
if [[ x$faxport == x ]] ; then
eerror "No faxport defined"
return 1
fi
hfaxd_args="$hfaxd_args -i $faxport"
;;
oldproto)
if [[ x$oldprotoport == x ]] ; then
eerror "No oldprotoport defined"
return 1
fi
hfaxd_args="$hfaxd_args -o $oldprotoport"
;;
snpp)
if [[ x$snppport == x ]] ; then
eerror "No snppport defined"
return 1
fi
hfaxd_args="$hfaxd_args -s $snppport"
;;
any)
if [[ x$faxport == x || x$snppport == x || x$oldprotoport == x ]] ; then
eerror "No port data founded for old services"
return 1
fi
hfaxd_args="$hfaxd_args -i $faxport -s $snppport -o $oldprotoport"
;;
*)
eerror "Invalid mode"
return 1
;;
esac
faxq_args="-q $SPOOL"
# workaround for manage save of pidfile with start-stop-daemon
hfaxd_args="$hfaxd_args -d"
faxq_args="$faxq_args -D"
return 0
}
start() {
local result
checkconfig || return 1
ebegin "Starting HylaFAX server daemons"
start_faxq
result=$?
if [ $result -ne 0 ] ; then
eerror "Error on start $faxq daemon"
return 1
fi
start_hfaxd
result=$?
eend $result
}
start_hfaxd() {
local arguments="--start \
--make-pidfile --pidfile $PIDDIR/hfaxd.pid"
einfo "Starting $hfaxd with args $hfaxd_args"
start-stop-daemon -b ${arguments} --exec $hfaxd -- $hfaxd_args > /dev/null 2>&1
return $?;
}
start_faxq() {
local arguments="--start \
--make-pidfile --pidfile $PIDDIR/faxq.pid"
einfo "Starting $faxq ... "
start-stop-daemon -b ${arguments} --exec $faxq -- $faxq_args > /dev/null 2>&1
return $?
}
stop() {
checkconfig || return 1
ebegin "Stopping HylaFAX server daemons"
start-stop-daemon --stop --quiet --pidfile $PIDDIR/hfaxd.pid
start-stop-daemon --stop --quiet --pidfile $PIDDIR/faxq.pid
eend $?
}
zap() {
checkconfig || return 1
ebegin "Zap HylaFAX server daemon files"
if [ -f $PIDFILE/hfaxd.pid ] ; then
rm -f $PIDFILE/hfaxd.pid
fi
if [ -f $PIDFILE/faxq.pid ] ; then
rm -f $PIDFILE/faxq.pid
fi
}
restart() {
stop
start
}