home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Source Code 1992 March
/
Source_Code_CD-ROM_Walnut_Creek_March_1992.iso
/
unix_c
/
usenet
/
newnwsrc.sh
< prev
next >
Wrap
Text File
|
1989-03-21
|
2KB
|
58 lines
8-Aug-85 13:49:10-MDT,1938;000000000001
Return-Path: <unix-sources-request@BRL.ARPA>
Received: from BRL-TGR.ARPA by SIMTEL20.ARPA with TCP; Thu 8 Aug 85 13:48:45-MDT
Received: from usenet by TGR.BRL.ARPA id aa00827; 8 Aug 85 7:48 EDT
From: "Col. G. L. Sicherman" <colonel@ellie.uucp>
Newsgroups: net.sources
Subject: moving a .newsrc
Message-ID: <486@ellie.UUCP>
Date: 7 Aug 85 20:11:42 GMT
To: unix-sources@BRL-TGR.ARPA
: newnewsrc - make a new .newsrc conform to an old one.
: Col. G. L. Sicherman. 7 Aug 1985.
:
: Have you ever moved from one system to another and found that
: you must customize a whole new .newsrc, because the old system
: numbered its news articles differently?
: This script imposes as much of an old .newsrc as possible on
: a new .newsrc. Specifically, it disables groups that were
: disabled on the old system, and arranges groups into the old
: order.
:
: usage: newnewsrc [-e] [-b] [-o] OLD NEW
:
: -e Enable disabled groups on NEW that were enabled on OLD.
: -b Place groups not found on OLD at beginning of NEW
: rather than at end.
: -o Do not import "option" lines from OLD.
:
: New file is written to standard output.
:
bflag='10000'
eflag='~'
oflag='=='
while (true) do
case $1 in
-b*) bflag='70000'; shift;;
-e*) eflag='!~'; shift;;
-o*) oflag='!='; shift;;
*) break;
esac
done
if (test 2 != $#) then
echo 'usage: newnewsrc [-e] [-b] [-o] old new' >&2
exit 1
fi
awk '{print "O",NR+'$bflag',$0}' < $1 > /usr/tmp/$$
awk '{print "N",NR+40000,$0}' < $2 | sort +2 -3 +0 - /usr/tmp/$$ |\
awk '$3 !~ /[:!]$/ {if ($1'$oflag'"O") print; next}\
substr($3,0,length($3)-1)==substr(LSTNM,0,length(LSTNM)-1) \
{if ($3'$eflag'/!$/) LSTNM=$3; print $1, $2, LSTNM, LSTRG; F=0; next}\
0 < F {print LAST; F=0}\
{if ("O"==$1) LSTRG=""; else LSTRG=$4; LSTNM=$3; \
LAST=$1 " " $2 " " LSTNM " " LSTRG; F=1}\
END {if (0<F) print LAST}' | sort -n +1 | sed -e 's/^..[0-9]* *//'
rm /usr/tmp/$$
exit 0