home *** CD-ROM | disk | FTP | other *** search
- #! /bin/sh
- # submit.relay - submit article on stdin via relaynews
- # environment variables: autopost, relayopts
- # =()<. ${NEWSCONFIG-@<NEWSCONFIG>@}>()=
- . ${NEWSCONFIG-/var/lib/news/bin/config}
- export NEWSCTL NEWSBIN NEWSARTS NEWSPATH NEWSUMASK NEWSMASTER NEWSCONFIG
- PATH=$NEWSCTL/bin:$NEWSBIN/relay:$NEWSBIN:$NEWSPATH; export PATH
-
- # deal with inadequate free space
- case "$autopost" in
- no)
- if test "`spacefor 1 articles`" -le 0; then
- echo "$0: too little space free on $NEWSARTS" >&2
- exit 1
- fi
- ;;
- yes)
- iter=0
- while test "`spacefor 1 articles`" -le 0 -o "`spacefor 1 control`" -le 0
- do
- sleep 30
- iter=`expr $iter + 1`
- case "$iter" in
- 3)
- mail "$NEWSMASTER" <<!
- Subject: free space too low on $NEWSARTS
-
- There is too little free space on $NEWSARTS for inews to run comfortably.
- !
- ;;
- esac
- done
- ;;
- *)
- echo "$0: autopost environment variable missing" >&2
- exit 1
- ;;
- esac
-
- # execute relaynews commands on the server, for the sake of locking.
- me="` hostname `"
- server="` cat $NEWSCTL/server 2>/dev/null `"
- case "$server" in
- "") server="$me" ;; # if no server file, assume this is it
- esac
- case "$me" in
- $server)
- relaynews $relayopts
- status=$?
- ;;
- *)
- # send article+commands to remote shell
- echo PATH=$PATH relaynews $relayopts >/tmp/irsh$$cmd
- ersh $server /bin/sh </tmp/irsh$$cmd
- status=$?
- rm -f /tmp/irsh$$cmd
- ;;
- esac
- # echo "status $status from relaynews" >>/tmp/inewsdebug # DEBUG
- exit $status
-