2.11BSD/src/new/rn/newsgroups
#!/bin/sh
# $Header: newsgroups.SH,v 4.3 85/05/01 11:43:27 lwall Exp $
#
# $Log: newsgroups.SH,v $
# Revision 4.3 85/05/01 11:43:27 lwall
# Baseline for release with 4.3bsd.
#
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="/usr/ucb/more"
active="/tmp/active.$$"
: End of system dependencies, hopefully
/news/lib/getactive $active
if /bin/test $# -ge 2 ; then
pager=/bin/cat
else
/bin/echo "Completely unsubscribed newsgroups:"
fi
dotdir=${DOTDIR-${HOME-$LOGDIR}}
: Throwing .newsrc into the pot twice is a lovely hack to prevent
: bogus newsgroups from showing up as unsubscribed.
/bin/cat $dotdir/.newsrc $dotdir/.newsrc $active | \
/bin/sed -e '/^options/d' \
-e '/^[ ]/d' \
-e '/^control/d' \
-e '/^to\./d' \
-e 's/^\([^ !:]*\)[ !:].*$/\1/' \
-e "/.*$1/p" \
-e 'd' | \
/bin/sort | /usr/bin/uniq -u | $pager
if /bin/test $# -ge 2 ; then
exit
fi
/bin/echo -n "[Type return to continue] "
read tmp
/bin/echo ""
/bin/echo "Unsubscribed but mentioned in .newsrc:"
/bin/sed < $dotdir/.newsrc \
-e "/$1.*!/"'s/^\([^!]*\)!.*$/\1/p' \
-e 'd' | \
/bin/sort | $pager