ietf
[Top] [All Lists]

Re: A modest proposal - allow the ID repository to hold xml

2003-09-02 09:16:55
-----BEGIN PGP SIGNED MESSAGE-----


"Rosen" == Rosen, Brian <Brian(_dot_)Rosen(_at_)marconi(_dot_)com> writes:
    Rosen> I therefore have a modest proposal:

    Rosen> Allow the submission of an xml file meeting the requirements of
    Rosen> RFC2629 
    Rosen> along with the text file (and optional ps file) for an Internet
    Rosen> Draft. 

  This is a great idea.

    Rosen> This would change the "Guidelines to Authors of Internet-Drafts" 
    Rosen> document to add: "XML marked-up text is acceptable, but only when
    Rosen> submitted  
    Rosen> with a matching ASCII version.  The xml file should be in
    Rosen> conformance 
    Rosen> with RFC2629."

  I think that the DTD that xml2rfc uses has evolved a bit since 2629.
  The other tools have evolved too, I think. Point being that we may have
to do 2629bis first.
  It would be so nice to be able to refer to the draft itself in order to
cite it :-)

  I'd like it if the charters were also available by rsync.  
  Even better if we started using a directory per WG...

  I do the following with my drafts:
          1) sort them by WG name.
          2) copy the charter.
          3) link in any RFCs that the charter references.



===


#!/usr/bin/perl

chdir('/corp/ietf');

system("rsync -avz ftp.rfc-editor.org::rfcs-text-only ftp.ietf.org/rfc");

system("rsync -avz optimus.ietf.org::internet-drafts 
ftp.ietf.org/internet-drafts");

system("cd html.charters; wget -r -l 1 -nv -np -nd -nc 
http://www.ietf.org/html.charters/";);

opendir(DRAFTS,"ftp.ietf.org/internet-drafts");
@drafts=readdir(DRAFTS);
closedir(DRAFTS);

foreach $draft (@drafts) {
    next if ($draft =~ /^\./);
    $draft =~ m,draft-([^-]*)-([^-]*)-(.*),;
    
    if($1 eq "ietf") {
        $dir = "id/$1/$2";
        $base= $3;
    } else {
        $dir = "id/$1";
        $base ="$2-$3";
    }

    next if (-f "$dir/$base");

    print "$draft -> $dir/$base\n";
    system("mkdir -p $dir") unless (-d "$dir");
    link("ftp.ietf.org/internet-drafts/$draft","$dir/$base");
} 

opendir(CHARTERS,"html-charters");
@charters=readdir(CHARTERS);
closedir(CHARTERS);

foreach $charter (@charters) {
  next if ($charter =~ /^\./);

  if($charter =~ m,(.*)-charter.html,) {
    # got one, copy it, sanitizing the links.
    $wgname=$1;
    $infile="html.charters/$charter";
    
    $dir="id/ietf/$wgname";
    system("mkdir -p $dir") unless (-d "$dir");
    
    $outfile="$dir/$charter";
    
    if(-f $outfile ) {
      # if date of infile is older than outfile
      print STDERR "$infile: ".(-M $infile)." $outfile: ".(-M $outfile)."\n";
      
      if(-M $infile > -M "$outfile") {
        print STDERR "$infile not newer than $outfile\n";
      }
    }
    
    # okay, process it.
    open(CHARTER, $infile) || die "Can not open $infile: $!\n";
    open(OUTFILE, ">$outfile")|| die "Can not open $outfile: $!\n";
    
    while(<CHARTER>) {
      # localize references
      
      s,href="/internet-drafts/draft-ietf-(.*\.txt)",href="\1",g;
      
      if(m,href="/rfc/rfc(.*).txt",) {
        $rfcnum=$1;
        s,href="/rfc/rfc(.*).txt",href="rfc\1.txt",g;

        #print STDERR "looking for rfc$rfcnum.txt\n";
        if(! -f "$dir/rfc$rfcnum.txt" &&
           ! -f "$dir/rfc$rfcnum.txt.Z") {

          $rfc4 = sprintf("%d", $rfcnum);
          
          print STDERR "linking: ftp.ietf.org/rfc/$rfc4.txt\n";
          link("ftp.ietf.org/rfc/rfc$rfc4.txt","$dir/rfc$rfcnum.txt") || die 
"Can not link ftp.ietf.org/rfc/rfc$rfc4.txt: $!\n";
        }
     }
      
      print OUTFILE;
    }
    close(CHARTER);
    close(OUTFILE);
  }
}



      
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)
Comment: Finger me for keys - custom hacks make this fully PGP2 compat

iQCVAwUBP1TAz4qHRg3pndX9AQGhZAP/bql06JCfPjf+CoWjRE4Q4jtzzqmjs1bY
YwgdZwfbPJML8z1nVlXKdyb/3l2pM70g0uTHIb52QBSrmIOu48DaohdAWeo4xKOy
JO0jwxX3VilBmXv6V805tHuHesVxzc6OITKm5MeZ+13gSvIKHjB5L0zDoEgyZlE7
rj653vyo5rU=
=M4fN
-----END PGP SIGNATURE-----