mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-25 04:43:31 +01:00
77 lines
1.9 KiB
Perl
Executable File
77 lines
1.9 KiB
Perl
Executable File
#!/usr/bin/perl -w
|
|
use strict;
|
|
|
|
my %options = ();
|
|
my %descOptions = ();
|
|
my %torrcSampleOptions = ();
|
|
my %torrcCompleteOptions = ();
|
|
my %manPageOptions = ();
|
|
|
|
# Load the canonical list as actually accepted by Tor.
|
|
my $mostRecentOption;
|
|
open(F, "./src/or/tor --list-torrc-options |") or die;
|
|
while (<F>) {
|
|
next if m!\[notice\] Tor v0\.!;
|
|
if (m!^([A-Za-z0-9_]+)!) {
|
|
$mostRecentOption = lc $1;
|
|
$options{$mostRecentOption} = 1;
|
|
} else {
|
|
print "Unrecognized output> ";
|
|
print;
|
|
}
|
|
}
|
|
close F;
|
|
|
|
# Load the contents of torrc.sample and torrc.complete
|
|
sub loadTorrc {
|
|
my ($fname, $options) = @_;
|
|
local *F;
|
|
open(F, "$fname") or die;
|
|
while (<F>) {
|
|
next if (m!##+!);
|
|
if (m!#([A-Za-z0-9_]+)!) {
|
|
$options->{lc $1} = 1;
|
|
}
|
|
}
|
|
close F;
|
|
0;
|
|
}
|
|
|
|
loadTorrc("./src/config/torrc.sample.in", \%torrcSampleOptions);
|
|
loadTorrc("./src/config/torrc.complete.in", \%torrcCompleteOptions);
|
|
|
|
# Try to figure out what's in the man page.
|
|
|
|
my $considerNextLine = 0;
|
|
open(F, "./doc/tor.1.txt") or die;
|
|
while (<F>) {
|
|
if (m!^\*\*([A-Za-z0-9_]+)\*\*!) {
|
|
$manPageOptions{lc $1} = 1;
|
|
}
|
|
}
|
|
close F;
|
|
|
|
# Now, display differences:
|
|
|
|
sub subtractHashes {
|
|
my ($s, $a, $b) = @_;
|
|
my @lst = ();
|
|
for my $k (keys %$a) {
|
|
push @lst, $k unless (exists $b->{$k});
|
|
}
|
|
print "$s: ", join(' ', sort @lst), "\n\n";
|
|
0;
|
|
}
|
|
|
|
# subtractHashes("No online docs", \%options, \%descOptions);
|
|
# subtractHashes("Orphaned online docs", \%descOptions, \%options);
|
|
|
|
subtractHashes("Not in torrc.complete.in", \%options, \%torrcCompleteOptions);
|
|
subtractHashes("Orphaned in torrc.complete.in", \%torrcCompleteOptions, \%options);
|
|
subtractHashes("Orphaned in torrc.sample.in", \%torrcSampleOptions, \%options);
|
|
|
|
subtractHashes("Not in man page", \%options, \%manPageOptions);
|
|
subtractHashes("Orphaned in man page", \%manPageOptions, \%options);
|
|
|
|
|