From 4607b1874088ef29c769b880ea472fa4897715fa Mon Sep 17 00:00:00 2001 From: Romano Date: Tue, 10 Oct 2023 03:16:04 +0000 Subject: [PATCH] grabrfc: update fetching The canonical server for fetching draft RFCs is defunct for ftp access, so a mirror site is now used. Add -d flag to fetch draft RFCs but otherwise do not. When fetching drafts, also fetch index and abstract files. For both normal and draft RFCs, only look for .txt files as there a lot of other files in remote directories that are not relevant. --- lib/rfc/grabrfc | 55 ++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 43 insertions(+), 12 deletions(-) diff --git a/lib/rfc/grabrfc b/lib/rfc/grabrfc index 4e06df312..76f95097a 100755 --- a/lib/rfc/grabrfc +++ b/lib/rfc/grabrfc @@ -1,19 +1,27 @@ -#!/bin/rc -# grabrfc - copy new rfcs and drafts into /lib/rfc +#!/bin/rc -b +# grabrfc - copy new rfcs into /lib/rfc +# grabrfc -d - copy draft rfcs as well rfork en path=(/bin) fn cd +flagfmt='d:drafts' +eval `''{aux/getflags $*} || exec aux/usage + dom=`{ndb/query sys $sysname dom} if(~ $dom '') dom=$sysname -ramfs -ftpfs -q/ -a $user@$dom ftp.rfc-editor.org # was ftp.isi.edu +ftpfs -q/ -a $user@$dom ftp.rfc-editor.org found=no LIB=/lib/rfc cd /n/ftp/in-notes -for(i in rfc*){ +fn cprfc { + f=$1 + shift +} + +for(i in rfc*.txt){ target=`{ echo $i | sed ' s/.txt$// @@ -31,19 +39,42 @@ if (~ $found yes) sed 's/^[0-9]/rfc&/' >$LIB/index unmount /n/ftp -ftpfs -q/ -a $user@$dom ftp.ietf.org +if (~ $drafts '') + exit + +ftpfs -q/ -a $user@$dom ftp.math.utah.edu # copy in new ones found=no LIB=/lib/rfc/drafts mkdir -p $LIB -cd /n/ftp/internet-drafts -for(i in *){ - target=$i +cd /n/ftp/pub/mirrors/ftp.ietf.org/internet-drafts +for(i in draft-*.txt){ + target=`{ + echo $i | sed ' + s/.txt$// + s/draft-//' + } if (test ! -e $LIB/$target && test -f $i && test `{ls -s $i | sed 's/ .*//'} -ge 2){ - cp $i $LIB/$target - chmod 664 $LIB/$target - echo drafts/$i + cp $i $LIB/$target + chmod 664 $LIB/$target + found=yes + echo drafts/$target } } +if (~ $found yes) { + if (test -f 1id-index.txt) + <1id-index.txt sed ' + s/\.txt// + s/draft-//' > $LIB/index + if not + >[1=2] echo no draft index found + if (test -f 1id-abstracts.txt) + <1id-abstracts.txt sed ' + s/\.txt// + s/draft-//' > $LIB/abstracts + if not + >[1=2] echo no abstracts found +} +unmount /n/ftp