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