home *** CD-ROM | disk | FTP | other *** search
/ Unix System Administration Handbook 1997 October / usah_oct97.iso / news / cnews.tar / ctl / newsreply < prev    next >
Text File  |  1994-08-17  |  1KB  |  56 lines

  1. #! /bin/sh
  2. # newsreply - print return address from news article on stdin
  3. # This version assumes a domain mailer (user@host.domain works) or
  4. # "internet" in mailpaths file, unless $NEWSCTL/replyusepath exists.
  5.  
  6. # =()<. ${NEWSCONFIG-@<NEWSCONFIG>@}>()=
  7. . ${NEWSCONFIG-/etc/news/bin/config}
  8. export NEWSCTL NEWSBIN NEWSARTS
  9. PATH=$NEWSCTL/bin:$NEWSBIN:$NEWSPATH ; export PATH
  10. umask $NEWSUMASK
  11.  
  12. hdr=/tmp/nc$$
  13. mroute=/tmp/ncm$$
  14.  
  15. canonhdr >$hdr
  16.  
  17. if test -r $NEWSCTL/replyusepath; then
  18.     grep '^Path:' $hdr | sed 's/^[^:]*:[     ]*//'
  19.     rm -f $hdr
  20.     exit 0
  21. fi
  22.  
  23. # pick out the appropriate header
  24. sender="` grep '^Reply-To:' $hdr `"
  25. case "$sender" in
  26. "")    sender="` grep '^From:' $hdr `" ;;
  27. esac
  28.  
  29. # strip header keyword, full name & duplicate lines, print result.
  30. # this copes with "address", "address (full name)" and "full name <address>".
  31. sender=` echo "$sender" | sed 's/^[^:]*:[     ]*//
  32. s/[     ]*(.*)//
  33. s/^.*<\(.*\)>.*$/\1/
  34. 1q' `
  35.  
  36. # B 2.11 mailpaths/"internet" hack
  37. cat $NEWSCTL/mailpaths |
  38.     while read ngpat route junk
  39.     do
  40.         case "$ngpat" in
  41.         internet)
  42.                 echo "$route" >$mroute
  43.                 break
  44.                 ;;
  45.         esac
  46.     done
  47. if test -s $mroute; then
  48.     sed "s/%s/`
  49.         echo $sender | sed 's/\(.*\)@\(.*\)/\2!\1/'
  50.         `/" <$mroute    # the real B 2.11 hack: u@d -> route!d!u
  51. else
  52.     echo $sender
  53. fi
  54.  
  55. rm -f $hdr $mroute
  56.