#!/sbin/openrc-run # Copyright 1999-2022 Gentoo Authors # 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 found. Use faxsetup command" return 1 fi if [ x${hfaxd} = x ] || [ ! -f ${hfaxd} ] ; then eerror "No hfaxd daemon found" return 1 fi if [ x${faxq} = x ] || [ ! -f ${faxq} ] ; then eerror "No faxq program found" return 1 fi if [ x${faxgetty} = x ] || [ ! -f ${faxgetty} ] ; then eerror "No faxgetty program found" return 1 fi if [ x${faxbind} = x ] ; then eerror "No binding address supplied" 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 ${PIDDIR}/hfaxd.pid ] ; then rm -f ${PIDDIR}/hfaxd.pid fi if [ -f ${PIDDIR}/faxq.pid ] ; then rm -f ${PIDDIR}/faxq.pid fi } restart() { stop start }