From a80dd635b3fb196192a292caa33575ea098e6599 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Tue, 21 Aug 2007 07:24:31 +0000 Subject: [PATCH] r14764@catbus: nickm | 2007-08-21 03:23:12 -0400 Add a perl script to regenerate proposal 000-index.txt so that it always matches the statuses and titles in the other proposals, and so that it has a sorted-by-status section. svn:r11243 --- doc/spec/proposals/000-index.txt | 44 +++++++++++++++++++- doc/spec/proposals/reindex.pl | 71 ++++++++++++++++++++++++++++++++ 2 files changed, 113 insertions(+), 2 deletions(-) create mode 100755 doc/spec/proposals/reindex.pl diff --git a/doc/spec/proposals/000-index.txt b/doc/spec/proposals/000-index.txt index 473de5b4a8..dbd52869f1 100644 --- a/doc/spec/proposals/000-index.txt +++ b/doc/spec/proposals/000-index.txt @@ -12,6 +12,10 @@ Overview: This is an informational document. + Everything in this document below the line of '=' signs is automatically + generated by reindex.pl; do not edit by hand. + +============================================================ Proposals by number: 000 Index of Tor Proposals [META] @@ -30,12 +34,48 @@ Proposals by number: 109 No more than one server per IP address [CLOSED] 110 Avoiding infinite length circuits [OPEN] 111 Prioritizing local traffic over relayed traffic [OPEN] -112 Bring Back Pathlen Coin Weight [OPEN] +112 Bring Back Pathlen Coin Weight [SUPERSEDED] 113 Simplifying directory authority administration [OPEN] 114 Distributed Storage for Tor Hidden Service Descriptors [OPEN] 115 Two Hop Paths [OPEN] 116 Two hop paths from entry guards [OPEN] 117 IPv6 exits [OPEN] -118 Advertising multiple ORPorts at once [RESEARCH] +118 Advertising multiple ORPorts at once [NEEDS-RESEARCH] 119 New PROTOCOLINFO command for controllers [CLOSED] 120 Suicide descriptors when Tor servers stop [OPEN] + + +Proposals by status: + + OPEN: + 105 Version negotiation for the Tor protocol + 110 Avoiding infinite length circuits + 111 Prioritizing local traffic over relayed traffic + 113 Simplifying directory authority administration + 114 Distributed Storage for Tor Hidden Service Descriptors + 115 Two Hop Paths + 116 Two hop paths from entry guards + 117 IPv6 exits + 120 Suicide descriptors when Tor servers stop + ACCEPTED: + 101 Voting on the Tor Directory System + 103 Splitting identity key from regularly used signing key + 104 Long and Short Router Descriptors + NEEDS-RESEARCH: + 118 Advertising multiple ORPorts at once + META: + 000 Index of Tor Proposals + 001 The Tor Proposal Process + 098 Proposals that should be written + 099 Miscellaneous proposals + CLOSED: + 102 Dropping "opt" from the directory format + 106 Checking fewer things during TLS handshakes + 107 Uptime Sanity Checking + 108 Base "Stable" Flag on Mean Time Between Failures + 109 No more than one server per IP address + 119 New PROTOCOLINFO command for controllers + SUPERSEDED: + 112 Bring Back Pathlen Coin Weight + DEAD: + 100 Tor Unreliable Datagram Extension Proposal diff --git a/doc/spec/proposals/reindex.pl b/doc/spec/proposals/reindex.pl new file mode 100755 index 0000000000..47b15951d3 --- /dev/null +++ b/doc/spec/proposals/reindex.pl @@ -0,0 +1,71 @@ +#!/usr/bin/perl -w +# Copyright 2007 Nick Mathewson. See LICENSE for licensing information. + +use strict; + +my $propdir = "."; +local *DIR; +local *F; + +opendir(DIR, $propdir) || die "Can't open $propdir"; +my @files = sort grep { /^\d\d\d-.*[^\~]$/ } readdir(DIR); +closedir DIR; + +my %title = (); +my %status = (); + +my @KNOWN_STATUSES = qw{ + OPEN ACCEPTED NEEDS-RESEARCH META CLOSED SUPERSEDED DEAD}; + +for my $f (@files) { + my $num = substr($f, 0, 3); + my $status = undef; + my $title = undef; + open(F, "$f"); + while () { + last if (/^\s*$/); + if (/^Status: (.*)/) { + $status = uc $1; + chomp $status; + } + if (/^Title: (.*)/) { + $title = $1; + $title =~ s/\.$//; + chomp $title; + } + } + close F; + die "I've never heard of status $status in proposal $num" + unless (grep(/$status/, @KNOWN_STATUSES) == 1); + die "Proposal $num has a bad status line" if (!defined $status); + die "Proposal $num has a bad title line" if (!defined $title); + $title{$num} = $title; + $status{$num} = $status; +} + +local *OUT; +open(OUT, ">000-index.txt.tmp"); + +open(F, "000-index.txt") or die "Can't open index file."; +while () { + print OUT; + last if (/^={3,}/); +} +close(F); + +print OUT "Proposals by number:\n\n"; + +for my $num (sort keys %title) { + print OUT "$num $title{$num} [$status{$num}]\n"; +} + +print OUT "\n\nProposals by status:\n\n"; +for my $status (@KNOWN_STATUSES) { + print OUT " $status:\n"; + for my $num (sort keys %status) { + next unless ($status{$num} eq $status); + print OUT " $num $title{$num}\n"; + } +} + +rename('000-index.txt.tmp', '000-index.txt');