summaryrefslogtreecommitdiff
path: root/bin/allpingers-ini2xml
diff options
context:
space:
mode:
Diffstat (limited to 'bin/allpingers-ini2xml')
-rwxr-xr-xbin/allpingers-ini2xml159
1 files changed, 159 insertions, 0 deletions
diff --git a/bin/allpingers-ini2xml b/bin/allpingers-ini2xml
new file mode 100755
index 0000000..9add8ae
--- /dev/null
+++ b/bin/allpingers-ini2xml
@@ -0,0 +1,159 @@
+#!/usr/bin/perl -wT
+
+# ini2xml: (c) 2002 Peter Palfrader <peter@palfrader.org>
+# $Id$
+#
+# This program is free software. you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+=pod
+
+=head1 NAME
+
+ini2xml convert pingers ini file to xml
+
+=over
+
+=head1 SYNOPSIS
+
+=item B<update>
+
+=back
+
+=head1 DESCRIPTION
+
+FIXME
+
+=back
+
+=head1 BUGS
+
+Please report them to the author.
+
+=head1 AUTHOR
+
+Peter Palfrader, E<lt>peter@palfrader.orgE<gt>
+
+=cut
+
+use strict;
+use Getopt::Long;
+use English;
+use FindBin qw{ $Bin };
+
+($Bin) = $Bin =~ m/^(.*)$/;
+chdir($Bin);
+
+$ENV{'PATH'} = '/bin:/usr/bin';
+delete @ENV{'IFS', 'CDPATH', 'ENV', 'BASH_ENV'};
+
+my %pingers;
+{
+ my $source;
+ while(<>) {
+ s/\s*(.*)\s*/$1/;
+ next if (/^\s*#/);
+ $source = $1, next if (/^\[(.*)\]$/);
+ if (/(.+?)\s*=\s*(.+)/) {
+ $pingers{$source}->{$1} = $2 if defined $source;
+ };
+ };
+};
+
+print qq{<?xml version="1.0"?>\n};
+printf qq{<!-- A L L P I N G E R S' I N D E X -->
+<!-- -->
+<!-- Generated: %-54s -->
+<!-- -->
+<!-- This list can be found on the web on http://www.noreply.org/ -->
+<!-- -->
+<!-- If anything is wrong/broken/missing please mail the maintainer at -->
+<!-- pingers\@palfrader.org -->
+}, scalar gmtime();
+print qq{
+<!DOCTYPE pingers [
+<!ELEMENT pingers (pinger*)>
+<!ATTLIST pingers
+ version CDATA #FIXED "1"
+ generated CDATA #REQUIRED
+ >
+<!ELEMENT pinger (
+ baseurl?,
+ rlist*,
+ mlist*,
+ rchain*,
+ pgpring*,
+ mixring?,
+ type2list?
+ )>
+<!ATTLIST pinger
+ name CDATA #REQUIRED
+ >
+<!ELEMENT baseurl (#PCDATA)>
+<!ELEMENT rlist (#PCDATA)>
+<!ATTLIST rlist
+ version (1|2) "1"
+ format (txt|html) "txt"
+ >
+<!ELEMENT mlist (#PCDATA)>
+<!ATTLIST mlist
+ version (1|2) "1"
+ format (txt|html) "txt"
+ >
+<!ELEMENT rchain (#PCDATA)>
+<!ATTLIST rchain
+ format (txt|html) "txt"
+ >
+<!ELEMENT pgpring (#PCDATA)>
+<!ATTLIST pgpring
+ format (asc|pgp) "asc"
+ keys (rsa|dsa|all) "all
+ ">
+<!ELEMENT mixring (#PCDATA)>
+<!ELEMENT type2list (#PCDATA)>
+]>
+};
+
+my $now = `822-date`;
+chomp $now;
+printf qq{<pingers version="1" generated="%s">\n}, $now;
+for my $pinger (sort keys %pingers) {
+ my $p = $pingers{$pinger};
+ printf qq{\t<pinger name="%s">\n}, $pinger;
+ printf (qq{\t\t<baseurl>%s</baseurl>\n}, $p->{'base'}) and delete $p->{'base'} if defined ($p->{'base'});
+
+ printf (qq{\t\t<rlist version="1" format="txt">%s</rlist>\n}, $p->{'rlist'})and delete $p->{'rlist'} if defined ($p->{'rlist'});
+ printf (qq{\t\t<rlist version="2" format="txt">%s</rlist>\n}, $p->{'rlist2'})and delete $p->{'rlist2'} if defined ($p->{'rlist2'});
+ printf (qq{\t\t<rlist version="1" format="html">%s</rlist>\n}, $p->{'rlist_html'})and delete $p->{'rlist_html'} if defined ($p->{'rlist_html'});
+ printf (qq{\t\t<rlist version="2" format="html">%s</rlist>\n}, $p->{'rlist2_html'})and delete $p->{'rlist2_html'} if defined ($p->{'rlist2_html'});
+
+ printf (qq{\t\t<mlist version="1" format="txt">%s</mlist>\n}, $p->{'mlist'})and delete $p->{'mlist'} if defined ($p->{'mlist'});
+ printf (qq{\t\t<mlist version="2" format="txt">%s</mlist>\n}, $p->{'mlist2'})and delete $p->{'mlist2'} if defined ($p->{'mlist2'});
+ printf (qq{\t\t<mlist version="1" format="html">%s</mlist>\n}, $p->{'mlist_html'})and delete $p->{'mlist_html'} if defined ($p->{'mlist_html'});
+ printf (qq{\t\t<mlist version="2" format="html">%s</mlist>\n}, $p->{'mlist2_html'})and delete $p->{'mlist2_html'} if defined ($p->{'mlist2_html'});
+
+ printf (qq{\t\t<rchain format="txt">%s</rchain>\n}, $p->{'rchain'})and delete $p->{'rchain'} if defined ($p->{'rchain'});
+ printf (qq{\t\t<rchain format="html">%s</rchain>\n}, $p->{'rchain_html'})and delete $p->{'rchain_html'} if defined ($p->{'rchain_html'});
+
+ printf (qq{\t\t<pgpring format="asc" keys="all">%s</pgpring>\n}, $p->{'pgpring'})and delete $p->{'pgpring'} if defined ($p->{'pgpring'});
+ printf (qq{\t\t<pgpring format="asc" keys="rsa">%s</pgpring>\n}, $p->{'pgpring_rsa'})and delete $p->{'pgpring_rsa'} if defined ($p->{'pgpring_rsa'});
+
+ printf (qq{\t\t<mixring>%s</mixring>\n}, $p->{'mixring'})and delete $p->{'mixring'} if defined ($p->{'mixring'});
+ printf (qq{\t\t<type2list>%s</type2list>\n}, $p->{'type2list'})and delete $p->{'type2list'} if defined ($p->{'type2list'});
+ for my $k (sort keys %$p) {
+ warn("Unused key $k in $p\n");
+ };
+ printf qq{\t</pinger>\n};
+}
+print qq{</pingers>\n};