enable robots.txt for irspy-test
[irspy-moved-to-github.git] / bin / irspy-dump.pl
1 #!/usr/bin/perl
2
3 # Invoke as:
4 #       $ mkdir records-2010-04-06
5 #       $ cd records-2010-04-06
6 #       $ irspy-dump.pl irspy.indexdata.com:8018/IR-Explain---1
7 #       $ cd ..
8 #       $ tar cfz records-2010-04-06.tar.gz records-2010-04-06
9 #
10 # or: cd zebra; make dump
11
12 use strict;
13 use warnings;
14 use ZOOM;
15
16 if (@ARGV != 1) {
17     print STDERR "Usage: $0 target\n";
18     exit 1;
19 }
20
21 my $conn = new ZOOM::Connection($ARGV[0]);
22 $conn->option(preferredRecordSyntax => "xml");
23 $conn->option(elementSetName => "zebra::data");
24 my $rs = $conn->search_pqf('@attr 1=_ALLRECORDS @attr 2=103 ""');
25 my $n = $rs->size();
26 $| = 1;
27 print "$0: dumping $n records\n";
28
29 my $step = 200;
30 my $step2 = 10;
31 foreach my $i (1..$n) {
32     print "." if $i % $step2 == 0;
33     print " $i/$n (", int($i*100/$n), "%)\n" if $i % $step == 0;
34     my $rec = $rs->record($i-1);
35     my $xml = $rec->render();
36     open F, ">$i.xml" or die "open $i.xml: $!\n";
37     print F $xml;
38     close F;
39 }
40 print " $n/$n (100%)\n" if $n % $step != 0;
41 print "complete\n";