4.3BSD/usr/contrib/nntp/rrn/newsetup

#!/bin/sh
# : newsetup.SH,v 4.3 85/05/01 11:43:05 lwall Exp $
# 
# :	newsetup.SH,v $
# Revision 4.3  85/05/01  11:43:05  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: newsetup

: System dependencies
: You will want to change the definitions below to reflect the distribution
: areas around you.  If you have more areas than this you will need to modify
: the sed below.

locorg="local"
organization="ucb"
city="ba"
state="ca"
cntry="usa"
cont="na"
active="/tmp/active.$$"

dotdir="${DOTDIR-${HOME-$LOGDIR}}"
rm -f $dotdir/.oldnewsrc
echo "Creating .newsrc in $dotdir to be used by news programs."

/usr/local/lib/rn/getactive $active

: NOTE: SED WILL NOT TAKE MORE THAN 10 WFILES, SO BEWARE

sort <$active | sed >/tmp/n.tmp$$	\
	-e 's/^\([^ ]*\) .*$/\1:/'	\
	-e '/^control:/{'		\
	-e "  w /tmp/n.test$$"	\
	-e '  d'			\
	-e '}'				\
	-e '/^junk:/{'			\
	-e "  w /tmp/n.test$$"	\
	-e '  d'			\
	-e '}'				\
	-e '/test:/{'			\
	-e "  w /tmp/n.test$$"	\
	-e '  d'			\
	-e '}'				\
	-e "/^net\./{"			\
	-e "  w /tmp/n.net$$"		\
	-e '  d'			\
	-e '}'				\
	-e "/^mod\./{"			\
	-e "  w /tmp/n.mod$$"		\
	-e '  d'			\
	-e '}'				\
	-e "/^$locorg\./{"		\
	-e "  w /tmp/n.$locorg$$"	\
	-e '  d'			\
	-e '}'				\
	-e "/^$organization\./{"	\
	-e "  w /tmp/n.$organization$$"	\
	-e '  d'			\
	-e '}'				\
	-e "/^$city\./{"		\
	-e "  w /tmp/n.$city$$"	\
	-e '  d'			\
	-e '}'				\
	-e "/^$state\./{" 		\
	-e "  w /tmp/n.$state$$"	\
	-e '  d'			\
	-e '}'				\
	-e "/^fa\./{"			\
	-e "  w /tmp/n.fa$$"		\
	-e '  d'			\
	-e '}'

sed </tmp/n.tmp$$ >/tmp/n.local$$	\
	-e "/^$cntry\./{" 		\
	-e "  w /tmp/n.$cntry$$"	\
	-e '  d'			\
	-e '}'				\
	-e "/^$cont\./{" 		\
	-e "  w /tmp/n.$cont$$"	\
	-e '  d'			\
	-e '}'				\
	-e "/^to\./{"			\
	-e "  w /tmp/n.to$$"		\
	-e '  d'			\
	-e '}'				\
	-e "/\./{"			\
	-e "  w /tmp/n.misc$$"	\
	-e '  d'			\
	-e '}'


if /bin/test -s $dotdir/.newsrc ; then
    echo "Saving your current .newsrc as .oldnewsrc..."
    mv -f $dotdir/.newsrc $dotdir/.oldnewsrc
fi

: newsrc order determined here
cat \
    /tmp/n.local$$ \
    /tmp/n.$locorg$$ \
    /tmp/n.$organization$$ \
    /tmp/n.$city$$ \
    /tmp/n.$state$$ \
    /tmp/n.$cntry$$ \
    /tmp/n.$cont$$ \
    /tmp/n.mod$$ \
    /tmp/n.net$$ \
    /tmp/n.fa$$ \
    /tmp/n.misc$$ \
    /tmp/n.test$$ \
| uniq >$dotdir/.newsrc

rm -f	/tmp/n.to$$ \
	/tmp/n.tmp$$ \
	/tmp/n.local$$ \
	/tmp/n.$locorg$$ \
	/tmp/n.$organization$$ \
	/tmp/n.$city$$ \
	/tmp/n.$state$$ \
	/tmp/n.$cntry$$ \
	/tmp/n.$cont$$ \
	/tmp/n.mod$$ \
	/tmp/n.net$$ \
	/tmp/n.fa$$ \
	/tmp/n.misc$$ \
	/tmp/n.test$$ \
	/tmp/active.$$

cat <<'EOH'
Done.

If you have never used the news system before, you may find the articles
in net.announce.newuser to be helpful.  There is also a manual entry for rn.

To get rid of newsgroups you aren't interested in, use the 'u' command.
Type h for help at any time while running rn.
EOH