176 lines
3.1 KiB
Text
176 lines
3.1 KiB
Text
#!/sbin/openrc-run
|
|
# Copyright 1999-2018 Gentoo Foundation
|
|
# Author Geaaru
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
extra_commands="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
|
|
}
|