/contrib/dialog/samples/copifuncs/copi.sendifm1

https://bitbucket.org/freebsd/freebsd-head/ · Shell · 74 lines · 52 code · 12 blank · 10 comment · 8 complexity · e24461b4ca50244d8142d7676474f90d MD5 · raw file

  1. #! /bin/sh
  2. ## $Revision: 1.1 $
  3. ## SH script to send UUCP batches out.
  4. ## =()<. @<_PATH_SHELLVARS>@>()=
  5. . ~news/innshellvars
  6. PROGNAME=`basename $0`
  7. LOCK=${LOCKS}/LOCK.${PROGNAME}
  8. LOG=${MOST_LOGS}/${PROGNAME}.log
  9. MAXJOBS=200
  10. UUXFLAGS="- -r -gd"
  11. ## Start logging.
  12. test ! -f ${LOG} && touch ${LOG}
  13. chmod 0660 ${LOG}
  14. exec >>${LOG} 2>&1
  15. echo "${PROGNAME}: [$$] begin `date`"
  16. cd ${BATCH}
  17. ## Anyone else there?
  18. trap 'rm -f ${LOCK} ; exit 1' 1 2 3 15
  19. shlock -p $$ -f ${LOCK} || {
  20. echo "${PROGNAME}: [$$] locked by [`cat ${LOCK}`]"
  21. exit 0
  22. }
  23. ## Who are we sending to?
  24. if [ -n "$1" ] ; then
  25. LIST="$*"
  26. else
  27. LIST=`ls /usr/spool/news/out.going|egrep "f[0-9]*.n[0-9]*$"`
  28. fi
  29. case ${HAVE_UUSTAT} in
  30. DONT)
  31. TEMP=${TMPDIR}/uuq$$
  32. uuq -h |tr -d : >${TEMP}
  33. ;;
  34. esac
  35. ## Do the work...
  36. for SITE in ${LIST}; do
  37. ## See if any data is ready for host.
  38. BATCHFILE=${SITE}.uucp
  39. if [ -f ${SITE}.work ] ; then
  40. cat ${SITE}.work >>${BATCHFILE}
  41. rm -f ${SITE}.work
  42. fi
  43. mv ${SITE} ${SITE}.work
  44. ctlinnd -s -t30 flush ${SITE} || continue
  45. cat ${SITE}.work >>${BATCHFILE}
  46. rm -f ${SITE}.work
  47. if [ ! -s ${BATCHFILE} ] ; then
  48. echo "${PROGNAME}: [$$] no articles for ${SITE}"
  49. rm -f ${BATCHFILE}
  50. continue
  51. fi
  52. ## Get the compression flags.
  53. echo "${PROGNAME}: [$$] begin ${SITE}"
  54. case "${SITE}" in
  55. phreak)
  56. COMPRESS="compress"
  57. ;;
  58. *)
  59. COMPRESS="gzip"
  60. ;;
  61. esac
  62. time batcher \