#!/bin/sh ## =()<. @<_PATH_SHELLVARS>@>()= . /usr/local/lib/news/innshellvars PROGNAME=`basename $0` LOCK=${LOCKS}/LOCK.${PROGNAME} LOG=${MOST_LOGS}/${PROGNAME}.log ## Start logging. test ! -f ${LOG} && touch ${LOG} chmod 0660 ${LOG} exec >>${LOG} 2>&1 echo "${PROGNAME}: [$$] begin `date`" cd ${BATCH} ## Anyone else there? trap 'rm -f ${LOCK} ; exit 1' 1 2 3 15 shlock -p $$ -f ${LOCK} || { echo "${PROGNAME}: [$$] locked by [`cat ${LOCK}`]" exit 0 } ## Who are we sending to? if [ -n "$1" ] ; then LIST="$*" else LIST=`ls /var/news/outgoing | grep -e 'f[0-9][0-9]*\.n[0-9][0-9]*$' -e 'f[0-9][0-9]*\.n[0-9][0-9]*\.hlo$'` fi ## Do the work... for SITE in ${LIST}; do case ${SITE} in *.hlo) hold="-g h" ADDR=`echo ${SITE} | sed 's/\.hlo$//1'` ;; *) hold="" ADDR=${SITE} ;; esac ## See if any data is ready for host. BATCHFILE=${SITE}.uucp if [ -f ${SITE}.work ] ; then cat ${SITE}.work >>${BATCHFILE} rm -f ${SITE}.work fi mv ${SITE} ${SITE}.work ctlinnd -s -t30 flush ${SITE} || continue cat ${SITE}.work >>${BATCHFILE} rm -f ${SITE}.work if [ ! -s ${BATCHFILE} ] ; then echo "${PROGNAME}: [$$] no articles for ${SITE}" rm -f ${BATCHFILE} continue fi ## Get the compression flags. echo "${PROGNAME}: [$$] begin ${SITE}" COMPRESS="gzip" time batcher \ -p"/usr/local/libexec/ifmail/ifnews ${hold} %s" \ ${ADDR} ${BATCHFILE} echo "${PROGNAME}: [$$] end ${SITE}" done ## Remove the lock file. rm -f ${LOCK} echo "${PROGNAME}: [$$] end `date`"