X-Git-Url: http://git.indexdata.com/?p=irspy-moved-to-github.git;a=blobdiff_plain;f=bin%2Firspy-rewrite-records.pl;h=fc3de55d037c4d95f9b6719808d0f9602962c18d;hp=a560db93b2a813c372f83347ff4495bcd274162e;hb=7cfd357a4adad76aa368d2198f3756c83e86a708;hpb=52e22ecc37e7c6b3d0244f320138048661af8c7b diff --git a/bin/irspy-rewrite-records.pl b/bin/irspy-rewrite-records.pl index a560db9..fc3de55 100755 --- a/bin/irspy-rewrite-records.pl +++ b/bin/irspy-rewrite-records.pl @@ -3,28 +3,62 @@ # perl -I ../lib irspy-rewrite-records.pl localhost:8018/IR-Explain---1 use lib '../lib'; +use Data::Dumper; +use Getopt::Long; use ZOOM::IRSpy; -use ZOOM::IRSpy::Utils qw(render_record); +use ZOOM::IRSpy::Utils qw(render_record validate_record); use strict; use warnings; -my($dbname) = @ARGV; -die "$0 no database name specified" if !defined $dbname; +my $irspy_to_zeerex_xsl = '../xsl/irspy2zeerex.xsl'; +my $debug = 1; +my $cql_query = "cql.allRecords=1"; -my $irspy_to_zeerex_xsl = $ARGV[1] || '../xsl/irspy2zeerex.xsl'; +sub usage { + my $message = shift; + + warn "$message\n" if defined $message; + + < \$irspy_to_zeerex_xsl, + "debug=i" => \$debug, + "query=s" => \$cql_query, +); + +my $dbname = shift; +die usage("no database name specified\n") if !defined $dbname; $ZOOM::IRSpy::irspy_to_zeerex_xsl = $irspy_to_zeerex_xsl if $irspy_to_zeerex_xsl; -my $spy = new ZOOM::IRSpy($dbname, "admin", "fruitbat"); -my $rs = $spy->{conn}->search(new ZOOM::Query::CQL("cql.allRecords=1")); -print STDERR "rewriting ", $rs->size(), " target records"; +my $spy = new ZOOM::IRSpy( $dbname, "admin", "fruitbat" ); +my $rs = $spy->{conn}->search( new ZOOM::Query::CQL($cql_query) ); +print STDERR "rewriting ", $rs->size(), " target records\n" if $debug; -foreach my $i (1 .. $rs->size()) { - my $xml = render_record($rs, $i-1, "zeerex"); +foreach my $i ( 1 .. $rs->size() ) { + my $xml = render_record( $rs, $i - 1, "zeerex" ); my $rec = $spy->{libxml}->parse_string($xml)->documentElement(); - ZOOM::IRSpy::_rewrite_zeerex_record($spy->{conn}, $rec); - print STDERR "."; + + if ( $debug >= 2 ) { + my ( $ok, $errors ) = validate_record($rec); + if ( !$ok ) { + my @e = @$errors; + my $id = shift @e; + print "Id: $id => ", join( " / ", @e ), "\n"; + } + } + ZOOM::IRSpy::_rewrite_zeerex_record( $spy->{conn}, $rec ); + print STDERR "." if $debug == 1; } -print STDERR "\nDone\n"; +print STDERR "Done\n" if $debug; +