/contrib/dialog/samples/copifuncs/copi.rcnews

https://bitbucket.org/freebsd/freebsd-head/ · Shell · 79 lines · 52 code · 10 blank · 17 comment · 10 complexity · 6278714adb028cd3c1e42f24af6a9d24 MD5 · raw file

  1. #! /bin/sh
  2. ## $Revision: 1.1 $
  3. ## News boot script.
  4. ## =()<. @<_PATH_SHELLVARS>@>()=
  5. . /usr/lib/news/innshellvars
  6. ## Pick ${INND} or ${INNDSTART}
  7. WHAT=${INNDSTART}
  8. ## Set to true or false
  9. DOINNWATCH=false
  10. MAIL="${MAILCMD} -s 'Boot-time Usenet warning on `hostname`' ${NEWSMASTER}"
  11. ## RFLAG is set below; set FLAGS as appropriate.
  12. RFLAG=""
  13. FLAGS="-i0 -c0"
  14. ## Clean shutdown?
  15. if [ -f ${SERVERPID} ] ; then
  16. ( echo 'INND: PID file exists -- unclean shutdown!' >/dev/console )
  17. RFLAG="-r"
  18. fi
  19. if [ ! -f ${NEWSLIB}/.news.daily ] ; then
  20. echo 'No .news.daily file; need to run news.daily?' | eval ${MAIL}
  21. else
  22. case `find ${NEWSLIB} -name .news.daily -mtime +1 -print 2>/dev/null` in
  23. "")
  24. ;;
  25. *)
  26. echo 'Old .news.daily file; need to run news.daily?' | eval ${MAIL}
  27. ;;
  28. esac
  29. fi
  30. ## Active file recovery.
  31. if [ ! -s ${ACTIVE} ] ; then
  32. if [ -s ${NEWACTIVE} ] ; then
  33. mv ${NEWACTIVE} ${ACTIVE}
  34. else
  35. if [ -s ${OLDACTIVE} ] ; then
  36. cp ${OLDACTIVE} ${ACTIVE}
  37. else
  38. ( echo 'INND: No active file!' >/dev/console )
  39. exit 1
  40. fi
  41. fi
  42. RFLAG="-r"
  43. # You might want to rebuild the DBZ database, too:
  44. #echo "cd ${NEWSLIB} \
  45. # && makehistory -r \
  46. # && mv history.n.dir history.dir \
  47. # && mv history.n.pag history.pag" | su ${NEWSUSER}
  48. fi
  49. ## Remove temporary batchfiles and lock files.
  50. ( cd ${BATCH} && rm -f bch* )
  51. ( cd ${LOCKS} && rm -f LOCK* )
  52. ( cd ${TEMPSOCKDIR} && rm -f ${TEMPSOCK} )
  53. rm -f ${NEWSCONTROL} ${NNTPCONNECT} ${SERVERPID}
  54. ## Start the show.
  55. ( echo 'Starting innd.' >/dev/console )
  56. eval ${WHAT} ${RFLAG} ${FLAGS}
  57. # Gee, looks like lisp, doesn't it?
  58. ${DOINNWATCH} && {
  59. echo "( ( sleep 60 ; ${INNWATCH} ) & )" | su ${NEWSUSER}
  60. }
  61. RMFILE=${MOST_LOGS}/expire.rm
  62. if [ -s ${MOST_LOGS}/expire.rm ] ; then
  63. ( echo "Removing articles from pre-downtime expire run." >/dev/console )
  64. (
  65. echo 'System shut down during expire. Unlinking articles listed in'
  66. echo ${RMFILE}
  67. ) | eval ${MAIL}
  68. echo "${NEWSBIN}/expirerm ${RMFILE}" | su ${NEWSUSER} &
  69. fi