--- trunk/run.pl 2007/11/12 12:22:08 1041 +++ trunk/run.pl 2007/12/23 22:06:08 1084 @@ -153,6 +153,8 @@ my $config = new WebPAC::Config( path => $config_path ); +WebPAC::Normalize::_debug( $debug - 1 ) if $debug > 1; + #print "config = ",dump($config) if ($debug); die "no databases in config file!\n" unless ($config->databases); @@ -326,12 +328,15 @@ # add database to arugemnts for output filter $output->{database} = $database; + $output->{clean} = $clean; $log->debug("calling $module->new(",dump( $output ),")"); my $out = new $module->new( $output ); - $out->init; - - push @output_modules, $out; + if ( $out->init ) { + push @output_modules, $out; + } else { + $log->warn("SKIPPED $module"); + } } @@ -365,7 +370,7 @@ my @lookups = $parser->have_lookup_create($database, $input); - $log->info("working on input '$input_name' in $input->{path} [type: $input->{type}] using $input_module", + $log->info("working on $database/$input_name with $input_module on $input->{path}", @lookups ? " creating lookups: ".join(", ", @lookups) : "" ); @@ -485,7 +490,9 @@ ); } - my $rules = $parser->normalize_rules($database,$input_name) || $log->logdie("no normalize rules found for $database/$input_name"); + my $rules = $parser->normalize_rules($database,$input_name); + $log->logwarn("no normalize rules for $database/$input_name") unless $rules; + $log->debug("parsed normalize rules:\n$rules"); # reset position in database @@ -555,46 +562,49 @@ next; # validation doesn't create any output } - my $ds = WebPAC::Normalize::data_structure( - row => $row, - rules => $rules, - lookup => $lookup_hash, - config => create_ds_config( $db_config, $database, $input, $mfn ), - marc_encoding => 'utf-8', - load_row_coderef => sub { - my ($database,$input,$mfn) = @_; + if ($rules) { + + my $ds = WebPAC::Normalize::data_structure( + row => $row, + rules => $rules, + lookup => $lookup_hash, + config => create_ds_config( $db_config, $database, $input, $mfn ), + marc_encoding => 'utf-8', + load_row_coderef => sub { + my ($database,$input,$mfn) = @_; #warn "### load_row($database,$input,$mfn) from data_structure\n"; - return $store->load_row( + return $store->load_row( + database => $database, + input => $input, + id => $mfn, + ); + }, + ); + + $log->debug("ds = ", sub { dump($ds) }); + + if ( $ds ) { + + $store->save_ds( database => $database, - input => $input, + input => $input_name, id => $mfn, - ); - }, - ); - - $log->debug("ds = ", sub { dump($ds) }); + ds => $ds, + ) if !$stats; - if ( $ds ) { + $indexer->add( + id => "${input_name}/${mfn}", + ds => $ds, + type => $config->get($indexer_config)->{type}, + ) if $indexer; - $store->save_ds( - database => $database, - input => $input_name, - id => $mfn, - ds => $ds, - ) if !$stats; - - $indexer->add( - id => "${input_name}/${mfn}", - ds => $ds, - type => $config->get($indexer_config)->{type}, - ) if $indexer; + foreach my $out ( @output_modules ) { + $out->add( $mfn, $ds ) if $out->can('add'); + } - foreach my $out ( @output_modules ) { - $out->add( $mfn, $ds ) if $out->can('add'); + } else { + $log->warn("record $pos didn't produce any output after normalization rules!") unless $marc; } - - } else { - $log->warn("record $pos didn't produce any output after normalization rules!") unless $marc; } if ($marc) {