+++ /dev/null
-#! /bin/sh
-# fixscript will replace this line with code to load innshellvars
-
-## $Revision: 2674 $
-## SH script to send IHAVE batches out.
-
-PROGNAME=`basename $0`
-LOG=${MOST_LOGS}/${PROGNAME}.log
-
-## How many Message-ID's per message.
-PERMESSAGE=1000
-
-## Go to where the action is, start logging
-cd $BATCH
-umask 002
-DEBUG=""
-if [ "X$1" = X-d ] ; then
- DEBUG="-d"
- shift
-else
- test ! -f ${LOG} && touch ${LOG}
- chmod 0660 ${LOG}
- exec >>${LOG} 2>&1
-fi
-
-echo "${PROGNAME}: [$$] begin `date`"
-
-## List of sitename:hostname pairs to send to
-if [ -n "$1" ] ; then
- LIST="$*"
-else
- echo "${PROGNAME}: [$$] no sites specified" >&2
- exit 1
-fi
-
-## Do the work...
-for SITE in ${LIST}; do
- case $SITE in
- *:*)
- HOST=`expr $SITE : '.*:\(.*\)'`
- SITE=`expr $SITE : '\(.*\):.*'`
- ;;
- *)
- HOST=$SITE
- ;;
- esac
- BATCHFILE=${SITE}.ihave.batch
- LOCK=${LOCKS}/LOCK.${SITE}.ihave
- trap 'rm -f ${LOCK} ; exit 1' 1 2 3 15
- shlock -p $$ -f ${LOCK} || {
- echo "${PROGNAME}: [$$] ${SITE}.ihave locked by `cat ${LOCK}`"
- continue
- }
-
- ## See if any data is ready for host.
- if [ -f ${SITE}.ihave.work ] ; then
- cat ${SITE}.ihave.work >>${BATCHFILE}
- rm -f ${SITE}.ihave.work
- fi
- if [ ! -f ${SITE}.ihave -o ! -s ${SITE}.ihave ] ; then
- if [ ! -f ${BATCHFILE} -o ! -s ${BATCHFILE} ] ; then
- rm -f ${LOCK}
- continue
- fi
- fi
- mv ${SITE}.ihave ${SITE}.ihave.work
- ctlinnd -s -t30 flush ${SITE}.ihave || continue
- cat ${SITE}.ihave.work >>${BATCHFILE}
- rm -f ${SITE}.ihave.work
- if [ ! -s ${BATCHFILE} ] ; then
- echo "${PROGNAME}: [$$] no articles for ${SITE}.ihave"
- rm -f ${BATCHFILE}
- continue
- fi
-
- echo "${PROGNAME}: [$$] begin ${SITE}.ihave"
-
- ## Write out the batchfile as a control message, in clumps.
- export SITE PERMESSAGE BATCHFILE
- while test -s ${BATCHFILE} ; do
- (
- echo Newsgroups: to.${SITE}
- echo Control: ihave `innconfval pathhost`
- echo Subject: cmsg ihave `innconfval pathhost`
- echo ''
- ${SED} -e ${PERMESSAGE}q <${BATCHFILE}
- ) | ${INEWS} -h
- ${SED} -e "1,${PERMESSAGE}d" <${BATCHFILE} >${BATCHFILE}.tmp
- mv ${BATCHFILE}.tmp ${BATCHFILE}
- done
- echo "${PROGNAME}: [$$] end ${SITE}.ihave"
- rm -f ${LOCK}
-done
-
-echo "${PROGNAME}: [$$] end `date`"