Page MenuHomePhorge

feedcyrus.in
No OneTemporary

Authored By
Unknown
Size
3 KB
Referenced Files
None
Subscribers
None

feedcyrus.in

#! /bin/sh
#
# Copyright (c) 2000 Carnegie Mellon University. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
#
# 3. The name "Carnegie Mellon University" must not be used to
# endorse or promote products derived from this software without
# prior written permission. For permission or any other legal
# details, please contact
# Office of Technology Transfer
# Carnegie Mellon University
# 5000 Forbes Avenue
# Pittsburgh, PA 15213-3890
# (412) 268-4387, fax: (412) 268-7395
# tech-transfer@andrew.cmu.edu
#
# 4. Redistributions of any form whatsoever must retain the following
# acknowledgment:
# "This product includes software developed by Computing Services
# at Carnegie Mellon University (http://www.cmu.edu/computing/)."
#
# CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
# THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
# FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
# AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
# OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
# $Id: feedcyrus.in,v 1.9 2000/05/23 20:52:15 robeson Exp $
# @configure_input@
##
## Send news to Cyrus IMAPD
## =()<. @<_PATH_SHELLVARS>@>()=
. @INNSHELLVARS@
CYRUS_DIR=@cyrus_prefix@/bin
PROGNAME=`basename $0`
LOCK=${LOCKS}/LOCK.${PROGNAME}
LOG=${MOST_LOGS}/${PROGNAME}.log
## Go to where the action is.
test ! -d ${BATCH} && {
echo "${PROGNAME}: directory ${BATCH} not found" 1>&2
exit 1
}
cd ${BATCH}
## Set up log file.
umask 002
test -z "${D_FLAG}" && {
test ! -f ${LOG} && touch ${LOG}
chmod 0660 ${LOG}
exec >>${LOG} 2>&1
}
PARENTPID=$$
echo "${PROGNAME}: [${PARENTPID}] start"
## Set up environment.
export BATCH PROGNAME PARENTPID CYRUS_DIR
## Loop over all sites.
for PROG in collectnews; do
## Start sending this site in the background.
export PROG LOCKS BATCHFILE PROGNAME PARENTPID TMPDIR
sh -c '
BATCHFILE=${PROG}.input
LOCK=${LOCKS}/LOCK.${PROG}
trap "rm -f ${LOCK} ; exit 1" 1 2 3 15
shlock -p $$ -f ${LOCK} || {
WHY="`cat ${LOCK}`"
echo "${PROGNAME}: [${PARENTPID}:$$] ${PROG} locked ${WHY} `date`"
exit
}
if [ -f ${PROG}.work ] ; then
cat ${PROG}.work >>${BATCHFILE}
rm -f ${PROG}.work
fi
mv ${PROG} ${PROG}.work
if ctlinnd -s -t30 flush ${PROG}"!" ; then
if [ -f ${BATCHFILE} ] ; then
cat ${PROG}.work >>${BATCHFILE}
rm -f ${PROG}.work
else
mv ${PROG}.work ${BATCHFILE}
fi
if [ -s ${BATCHFILE} ] ; then
echo "${PROGNAME}: [${PARENTPID}:$$] begin ${PROG} `date`"
${CYRUS_DIR}/${PROG} < ${BATCH}/${BATCHFILE} && rm -f ${BATCHFILE}
echo "${PROGNAME}: [${PARENTPID}:$$] end ${PROG} `date`"
else
rm -f ${BATCHFILE}
fi
fi
rm -f ${LOCK}
' &
sleep 5
done
wait
echo "${PROGNAME}: [${PARENTPID}] stop"

File Metadata

Mime Type
text/x-shellscript
Expires
Fri, Apr 24, 1:33 PM (1 d, 13 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
e9/d5/01da26a02e303098774b962af4c2
Default Alt Text
feedcyrus.in (3 KB)

Event Timeline