|
@ -3,6 +3,7 @@ use strict; |
|
|
use warnings; |
|
|
use warnings; |
|
|
|
|
|
|
|
|
my $topbip = 9999; |
|
|
my $topbip = 9999; |
|
|
|
|
|
my $include_layer = 0; |
|
|
|
|
|
|
|
|
my %RequiredFields = ( |
|
|
my %RequiredFields = ( |
|
|
BIP => undef, |
|
|
BIP => undef, |
|
@ -31,6 +32,13 @@ my %MiscField = ( |
|
|
'Resolution' => undef, |
|
|
'Resolution' => undef, |
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
my %ValidLayer = ( |
|
|
|
|
|
'Consensus (soft fork)' => undef, |
|
|
|
|
|
'Consensus (hard fork)' => undef, |
|
|
|
|
|
'Peer Services' => undef, |
|
|
|
|
|
'API/RPC' => undef, |
|
|
|
|
|
'Applications' => undef, |
|
|
|
|
|
); |
|
|
my %ValidStatus = ( |
|
|
my %ValidStatus = ( |
|
|
Draft => undef, |
|
|
Draft => undef, |
|
|
Deferred => undef, |
|
|
Deferred => undef, |
|
@ -58,7 +66,7 @@ while (++$bipnum <= $topbip) { |
|
|
die "No <pre> in $fn" if eof $F; |
|
|
die "No <pre> in $fn" if eof $F; |
|
|
} |
|
|
} |
|
|
my %found; |
|
|
my %found; |
|
|
my ($title, $author, $status, $type); |
|
|
my ($title, $author, $status, $type, $layer); |
|
|
my ($field, $val); |
|
|
my ($field, $val); |
|
|
while (<$F>) { |
|
|
while (<$F>) { |
|
|
m[^</pre>$] && last; |
|
|
m[^</pre>$] && last; |
|
@ -103,6 +111,9 @@ while (++$bipnum <= $topbip) { |
|
|
} else { |
|
|
} else { |
|
|
$type = $val; |
|
|
$type = $val; |
|
|
} |
|
|
} |
|
|
|
|
|
} elsif ($field eq 'Layer') { # BIP 123 |
|
|
|
|
|
die "Invalid layer $val in $fn" unless exists $ValidLayer{$val}; |
|
|
|
|
|
$layer = $val; |
|
|
} elsif (exists $DateField{$field}) { |
|
|
} elsif (exists $DateField{$field}) { |
|
|
die "Invalid date format in $fn" unless $val =~ /^20\d{2}\-(?:0\d|1[012])\-(?:[012]\d|30|31)$/; |
|
|
die "Invalid date format in $fn" unless $val =~ /^20\d{2}\-(?:0\d|1[012])\-(?:[012]\d|30|31)$/; |
|
|
} elsif (exists $EmailField{$field}) { |
|
|
} elsif (exists $EmailField{$field}) { |
|
@ -120,6 +131,13 @@ while (++$bipnum <= $topbip) { |
|
|
} |
|
|
} |
|
|
print "\n"; |
|
|
print "\n"; |
|
|
print "| [[${fn}|${bipnum}]]\n"; |
|
|
print "| [[${fn}|${bipnum}]]\n"; |
|
|
|
|
|
if ($include_layer) { |
|
|
|
|
|
if (defined $layer) { |
|
|
|
|
|
print "| ${layer}\n"; |
|
|
|
|
|
} else { |
|
|
|
|
|
print "|\n"; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
print "| ${title}\n"; |
|
|
print "| ${title}\n"; |
|
|
print "| ${author}\n"; |
|
|
print "| ${author}\n"; |
|
|
print "| ${type}\n"; |
|
|
print "| ${type}\n"; |
|
|