home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- # $Id: newsgroups.SH,v 3.0 1992/02/01 03:09:32 davison Trn $
- #
- # This software is Copyright 1991 by Stan Barber.
- #
- # Permission is hereby granted to copy, reproduce, redistribute or otherwise
- # use this software as long as: there is no monetary profit gained
- # specifically from the use or reproduction of this software, it is not
- # sold, rented, traded or otherwise marketed, and this copyright notice is
- # included prominently in any copy made.
- #
- # The author make no claims as to the fitness or correctness of this software
- # for any use whatsoever, and it is provided as is. Any use of this software
- # is at the user's own risk.
-
- export PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh $0; kill $$)
-
- : syntax: newsgroups [pattern] [pipeflag]
-
- : System Dependencies
-
- : You might want to change pager to a "make column" program if you have one.
- : On the other hand, if your kernel does paging, cat would probably do.
- pager="/bin/more"
-
-
- active="/tmp/active.$$"
- rnlib=/usr/lib/trn
- case $rnlib in
- ~*) rnlib=`/usr/lib/trn/filexp $rnlib` ;;
- esac
- nntplist=/usr/bin/nntplist
-
- : End of system dependencies, hopefully
-
- if $nntplist -o $active ACTIVE; then
- : nothing
- else
- exit 1
- fi
-
- if test $# -ge 2 ; then
- pager=/bin/cat
- else
- /bin/echo "Completely unsubscribed newsgroups:"
- fi
-
- dotdir=${DOTDIR-${HOME-$LOGDIR}}
- newsrc=$dotdir/.newsrc
-
- : Throwing .newsrc into the pot twice is a lovely hack to prevent
- : bogus newsgroups from showing up as unsubscribed.
-
- /bin/cat $newsrc $newsrc $active | \
- /usr/bin/sed -n -e '/^options/d' \
- -e '/^[ ]/d' \
- -e '/^control/d' \
- -e '/^to\./d' \
- -e '/ x$/d' \
- -e 's/^\([^ !:]*\)[ !:].*$/\1/' \
- -e "/.*$1/p" | \
- /usr/bin/sort | /usr/bin/uniq -u | $pager
- /bin/rm -f $active
- if test $# -ge 2 ; then
- exit
- fi
- /bin/echo "[Type return to continue] \c"
- read tmp
- /bin/echo ""
- /bin/echo "Unsubscribed but mentioned in $newsrc:"
- /usr/bin/sed -n < $newsrc \
- -e "/$1.*!/"'s/^\([^!]*\)!.*$/\1/p' | \
- /usr/bin/sort | $pager
-