--- trunk/run.pl 2006/06/29 15:29:32 539 +++ trunk/run.pl 2006/06/29 22:53:21 546 @@ -19,6 +19,7 @@ use File::Path; use Time::HiRes qw/time/; use File::Slurp; +use MARC::Record 2.0; # need 2.0 for utf-8 encoding see marcpm.sf.net =head1 NAME @@ -225,7 +226,6 @@ foreach my $normalize (@norm_array) { - my $rules; my $normalize_path = $normalize->{path} || $log->logdie("can't find normalize path in config"); $log->logdie("Found '$normalize_path' as normalization file which isn't supported any more!") unless ( $normalize_path =~ m!\.pl$!i ); @@ -234,6 +234,14 @@ $log->info("Using $normalize_path for normalization..."); + my $marc_fh; + if (my $path = $normalize->{marc21}) { + open($marc_fh, '>', $path) || + $log->logdie("can't open MARC output $path: $!"); + + $log->info("Creating MARC export file $path\n"); + } + # reset position in database $input_db->seek(1); @@ -260,6 +268,7 @@ row => $row, rules => $rules, lookup => $lookup ? $lookup->lookup_hash : undef, + marc_encoding => 'utf-8', ); $db->save_ds( @@ -272,14 +281,24 @@ id => $input->{name} . "/" . $mfn, ds => $ds, type => $config->{$use_indexer}->{type}, - ) if ($indexer); + ) if ($indexer && $ds); + + if ($marc_fh) { + my $marc = new MARC::Record; + $marc->encoding( 'utf-8' ); + $marc->add_fields( WebPAC::Normalize::_get_marc21_fields() ); + print $marc_fh $marc->as_usmarc; + } $total_rows++; } $log->info("statistics of fields usage:\n", $input_db->stats) if ($stats); - }; + # close MARC file + close($marc_fh) if ($marc_fh); + + } }