From fa237c9069dc2e86a47daed4ac708e60509397cd Mon Sep 17 00:00:00 2001 From: Alec Muffett Date: Tue, 14 Feb 2017 12:06:54 +0000 Subject: [PATCH] obconfig --- maps-to-obconfig.pl | 112 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100755 maps-to-obconfig.pl diff --git a/maps-to-obconfig.pl b/maps-to-obconfig.pl new file mode 100755 index 0000000..3e946f5 --- /dev/null +++ b/maps-to-obconfig.pl @@ -0,0 +1,112 @@ +#!/usr/bin/perl + +my %data = (); # $data{$project}{$master_onion}{$worker_onion} = 1; +my %dnsmap = (); # $dnsmap{$master_onion} = $dns_domain + +#------------------------------------------------------------------ + +sub SetEnv { # copied from do-configure.pl + my ($var, $val, $why) = @_; + die "bad varname: $var\n" if ($var !~ /^[A-Za-z_]\w+/); + $var =~ tr/a-z/A-Z/; + $ENV{$var} = $val; + warn (($why ? "($why) " : "") . "set $var to $val\n"); +} + +sub Pipeify { # copied from do-configure.pl + my ($cmd, @hashreflist) = @_; # there WILL be shell syntax in $cmd + warn "Pipeify $cmd ...\n"; + + my $first = $hashreflist[0]; + + if (!defined($first)) { + warn "Pipeify note: empty template\n"; + } + + my @vars = sort keys %{$first}; # get column names, assume uniformity + + open(PIPE, "|$cmd") or die "popen: $cmd: $!\n"; + warn "head @vars\n"; + print PIPE join(" ", @vars), "\n"; # send the column names, even if "empty" + + foreach my $hashref (@hashreflist) { # send the rows + my @row = (); + foreach my $var (@vars) { + my $val = ${$hashref}{$var}; + die "Pipeify: empty var $var\n" unless ($val ne ""); + die "Pipeify: whitespace var $var: $val\n" if ($val =~ /\s/); + push(@row, $val); + } + warn "body @row\n"; + print PIPE join(" ", @row), "\n"; + } + close(PIPE) or die "pclose: $cmd: $!\n"; +} + +#------------------------------------------------------------------ + +while () { + my ($project, + $softmap, + $master_onion, + $dns_domain, + $via, + $worker_onion) = split(" "); + die "bad format: not softmap: @x\n" if $softmap ne "softmap"; + die "bad format: not via: @x\n" if $via ne "via"; + $data{$project}{$master_onion}{$worker_onion} = 1; + $dnsmap{$master_onion} = $dns_domain}; +} + +foreach my $project (sort keys %data) { + foreach my $master_onion (sort keys %{$data{$project}}) { + my @worker_onions = sort keys %{$data{$project}{$master_onion}}; + print "$project $master_onion : @worker_onions\n"; + } +} + +__DATA__; +wiki softmap xlgm4owgbdusgwax.onion wikipedia.org via w7ghprgn4f4wbq7s.onion +wiki softmap 5xnr2xpxmxfd33qf.onion mediawiki.org via w7ghprgn4f4wbq7s.onion +wiki softmap geax5tb7xnejbxdo.onion wikibooks.org via w7ghprgn4f4wbq7s.onion +wiki softmap rkfvf6ijdrbzz7d7.onion wikidata.org via w7ghprgn4f4wbq7s.onion +wiki softmap nxmlavaypnu43ken.onion wikimedia.org via w7ghprgn4f4wbq7s.onion +wiki softmap rdqzpxkz3wnfdoz6.onion wikinews.org via w7ghprgn4f4wbq7s.onion +wiki softmap s5mzdqhesw5mzf67.onion wikiquote.org via w7ghprgn4f4wbq7s.onion +wiki softmap tqlvl34m5hcptes5.onion wikisource.org via w7ghprgn4f4wbq7s.onion +wiki softmap 7xddhe42phangeso.onion wikiversity.org via w7ghprgn4f4wbq7s.onion +wiki softmap xj62n2madibvnvtw.onion wikivoyage.org via w7ghprgn4f4wbq7s.onion +wiki softmap ejbhfdo3sww6j5ir.onion wiktionary.org via w7ghprgn4f4wbq7s.onion +wiki softmap xlgm4owgbdusgwax.onion wikipedia.org via zh63f4p2hev44a5b.onion +wiki softmap 5xnr2xpxmxfd33qf.onion mediawiki.org via zh63f4p2hev44a5b.onion +wiki softmap geax5tb7xnejbxdo.onion wikibooks.org via zh63f4p2hev44a5b.onion +wiki softmap rkfvf6ijdrbzz7d7.onion wikidata.org via zh63f4p2hev44a5b.onion +wiki softmap nxmlavaypnu43ken.onion wikimedia.org via zh63f4p2hev44a5b.onion +wiki softmap rdqzpxkz3wnfdoz6.onion wikinews.org via zh63f4p2hev44a5b.onion +wiki softmap s5mzdqhesw5mzf67.onion wikiquote.org via zh63f4p2hev44a5b.onion +wiki softmap tqlvl34m5hcptes5.onion wikisource.org via zh63f4p2hev44a5b.onion +wiki softmap 7xddhe42phangeso.onion wikiversity.org via zh63f4p2hev44a5b.onion +wiki softmap xj62n2madibvnvtw.onion wikivoyage.org via zh63f4p2hev44a5b.onion +wiki softmap ejbhfdo3sww6j5ir.onion wiktionary.org via zh63f4p2hev44a5b.onion +wiki softmap xlgm4owgbdusgwax.onion wikipedia.org via c7id3gyjb5t7n4uh.onion +wiki softmap 5xnr2xpxmxfd33qf.onion mediawiki.org via c7id3gyjb5t7n4uh.onion +wiki softmap geax5tb7xnejbxdo.onion wikibooks.org via c7id3gyjb5t7n4uh.onion +wiki softmap rkfvf6ijdrbzz7d7.onion wikidata.org via c7id3gyjb5t7n4uh.onion +wiki softmap nxmlavaypnu43ken.onion wikimedia.org via c7id3gyjb5t7n4uh.onion +wiki softmap rdqzpxkz3wnfdoz6.onion wikinews.org via c7id3gyjb5t7n4uh.onion +wiki softmap s5mzdqhesw5mzf67.onion wikiquote.org via c7id3gyjb5t7n4uh.onion +wiki softmap tqlvl34m5hcptes5.onion wikisource.org via c7id3gyjb5t7n4uh.onion +wiki softmap 7xddhe42phangeso.onion wikiversity.org via c7id3gyjb5t7n4uh.onion +wiki softmap xj62n2madibvnvtw.onion wikivoyage.org via c7id3gyjb5t7n4uh.onion +wiki softmap ejbhfdo3sww6j5ir.onion wiktionary.org via c7id3gyjb5t7n4uh.onion +wiki softmap xlgm4owgbdusgwax.onion wikipedia.org via 72hcgfqjgnwtkzx5.onion +wiki softmap 5xnr2xpxmxfd33qf.onion mediawiki.org via 72hcgfqjgnwtkzx5.onion +wiki softmap geax5tb7xnejbxdo.onion wikibooks.org via 72hcgfqjgnwtkzx5.onion +wiki softmap rkfvf6ijdrbzz7d7.onion wikidata.org via 72hcgfqjgnwtkzx5.onion +wiki softmap nxmlavaypnu43ken.onion wikimedia.org via 72hcgfqjgnwtkzx5.onion +wiki softmap rdqzpxkz3wnfdoz6.onion wikinews.org via 72hcgfqjgnwtkzx5.onion +wiki softmap s5mzdqhesw5mzf67.onion wikiquote.org via 72hcgfqjgnwtkzx5.onion +wiki softmap tqlvl34m5hcptes5.onion wikisource.org via 72hcgfqjgnwtkzx5.onion +wiki softmap 7xddhe42phangeso.onion wikiversity.org via 72hcgfqjgnwtkzx5.onion +wiki softmap xj62n2madibvnvtw.onion wikivoyage.org via 72hcgfqjgnwtkzx5.onion +wiki softmap ejbhfdo3sww6j5ir.onion wiktionary.org via 72hcgfqjgnwtkzx5.onion