r1904@llin: dpavlin | 2009-05-30 16:21:56 +0200
[webpac2] / run.pl
diff --git a/run.pl b/run.pl
index 933cd06..5f7b247 100755 (executable)
--- a/run.pl
+++ b/run.pl
@@ -22,7 +22,7 @@ use File::Slurp;
 use Data::Dump qw/dump/;
 use Storable qw/dclone/;
 use Pod::Usage qw/pod2usage/;
-use LWP::Simple;
+use LWP::Simple qw//;
 
 use POSIX ":sys_wait_h"; # imports WNOHANG
 
@@ -417,8 +417,8 @@ foreach my $database ( sort keys %{ $config->databases } ) {
                        $base =~ s{/[^/]+$}{};
                        mkpath $base unless -e $base;
 
-                       my $rc = mirror( "$mirror/$path", $path );
-                       if (is_error( $rc )) {
+                       my $rc = LWP::Simple::mirror( "$mirror/$path", $path );
+                       if (LWP::Simple::is_error( $rc )) {
                                die "can't mirror $mirror/$path -> $path [$rc]";
                        } else {
                                $log->info( "mirror ", $path, " [$rc] ", -s $path, " bytes" );
@@ -513,7 +513,9 @@ foreach my $database ( sort keys %{ $config->databases } ) {
 
                my $report_fh;
                if ($stats || $validate) {
-                       my $path = "out/report/${database}-${input_name}.txt";
+                       my $out_report = 'out/report'; # FIXME move to config
+                       mkpath $out_report unless -e $out_report;
+                       my $path = "$out_report/${database}-${input_name}.txt";
                        open($report_fh, '>', $path) || $log->logdie("can't open $path: $!");
 
                        print $report_fh "Report for database '$database' input '$input_name' records ",
@@ -528,8 +530,12 @@ foreach my $database ( sort keys %{ $config->databases } ) {
 
                my $marc;
                if ($marc_generate && $parser->have_rules( 'marc', $database, $input_name )) {
+                       
+                       my $out_marc = 'out/marc'; # FIXME move to config
+                       mkpath $out_marc unless -e $out_marc;
+
                        $marc = new WebPAC::Output::MARC(
-                               path => "out/marc/${database}-${input_name}.marc",
+                               path => "$out_marc/${database}-${input_name}.marc",
                                lint => $marc_lint,
                                dump => $marc_dump,
                        );
@@ -597,6 +603,9 @@ foreach my $database ( sort keys %{ $config->databases } ) {
                                push @{ $row->{'000'} }, $pos;
                        }
 
+                       foreach my $out ( @output_modules ) {
+                               $out->add_row( $mfn, $row ) if $out->can('add_row');
+                       }
 
                        if ($validate) {
                                if ( my $errors = $validate->validate_rec( $row, $input_db->dump_ascii ) ) {