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=bcc58e75a8b87da9a31840ca2e9954676b5c6919;hb=7cfd357a4adad76aa368d2198f3756c83e86a708;hpb=f01e52b20eaac746a863f8a7b9102c6bf2e22f5a diff --git a/bin/irspy-rewrite-records.pl b/bin/irspy-rewrite-records.pl old mode 100644 new mode 100755 index bcc58e7..fc3de55 --- a/bin/irspy-rewrite-records.pl +++ b/bin/irspy-rewrite-records.pl @@ -1,22 +1,64 @@ -#!/usr/bin/perl -w - +#!/usr/bin/perl +# # 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 validate_record); + use strict; use warnings; -use ZOOM::IRSpy; -use ZOOM::IRSpy::Utils qw(render_record); -my($dbname) = @ARGV; -die "$0 no database name specified" if !defined $dbname; -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 $irspy_to_zeerex_xsl = '../xsl/irspy2zeerex.xsl'; +my $debug = 1; +my $cql_query = "cql.allRecords=1"; -foreach my $i (1 .. $rs->size()) { - my $xml = render_record($rs, $i-1, "zeerex"); +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_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" ); 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; +