home *** CD-ROM | disk | FTP | other *** search
/ Il CD di internet / CD.iso / SOURCE / N / CNEWS / _CNEWS.TAR / usr / lib / newsbin / inject / submit.relay < prev    next >
Encoding:
Text File  |  1994-09-02  |  1.4 KB  |  61 lines

  1. #! /bin/sh
  2. # submit.relay - submit article on stdin via relaynews
  3. #    environment variables: autopost, relayopts
  4. # =()<. ${NEWSCONFIG-@<NEWSCONFIG>@}>()=
  5. . ${NEWSCONFIG-/var/lib/news/bin/config}
  6. export NEWSCTL NEWSBIN NEWSARTS NEWSPATH NEWSUMASK NEWSMASTER NEWSCONFIG
  7. PATH=$NEWSCTL/bin:$NEWSBIN/relay:$NEWSBIN:$NEWSPATH; export PATH
  8.  
  9. # deal with inadequate free space
  10. case "$autopost" in
  11. no)
  12.     if test "`spacefor 1 articles`" -le 0; then
  13.         echo "$0: too little space free on $NEWSARTS" >&2
  14.         exit 1
  15.     fi
  16.     ;;
  17. yes)
  18.     iter=0
  19.     while test "`spacefor 1 articles`" -le 0 -o "`spacefor 1 control`" -le 0
  20.     do
  21.         sleep 30
  22.         iter=`expr $iter + 1`
  23.         case "$iter" in
  24.         3)
  25.             mail "$NEWSMASTER" <<!
  26. Subject: free space too low on $NEWSARTS
  27.  
  28. There is too little free space on $NEWSARTS for inews to run comfortably.
  29. !
  30.             ;;
  31.         esac
  32.     done
  33.     ;;
  34. *)
  35.     echo "$0: autopost environment variable missing" >&2
  36.     exit 1
  37.     ;;
  38. esac
  39.  
  40. # execute relaynews commands on the server, for the sake of locking.
  41. me="` hostname `"
  42. server="` cat $NEWSCTL/server 2>/dev/null `"
  43. case "$server" in
  44. "")    server="$me" ;;            # if no server file, assume this is it
  45. esac
  46. case "$me" in
  47. $server)
  48.     relaynews $relayopts
  49.     status=$?
  50.     ;;
  51. *)
  52.     # send article+commands to remote shell
  53.     echo PATH=$PATH relaynews $relayopts >/tmp/irsh$$cmd
  54.     ersh $server /bin/sh </tmp/irsh$$cmd
  55.     status=$?
  56.     rm -f /tmp/irsh$$cmd
  57.     ;;
  58. esac
  59. # echo "status $status from relaynews" >>/tmp/inewsdebug # DEBUG
  60. exit $status
  61.