--- trunk/run.pl 2007/05/27 11:14:40 851 +++ trunk/run.pl 2007/06/21 12:53:41 866 @@ -68,6 +68,9 @@ turn on extra validation of imput records, see L +You can use special variables C<$database> and $C<$input> in this parametar +like C<--validate 'conf/validate/$database-$input'> to construct filename + =item --validate-delimiters path/to/validate_delimiters_file this option is used with C<--validate> to turn on extra validation of @@ -174,9 +177,7 @@ my $validate; $validate = new WebPAC::Validate( - path => $validate_path, delimiters => $config->webpac('delimiters'), - delimiters_path => $validate_delimiters_path, ) if ($validate_path || $validate_delimiters_path); my $use_indexer = $config->use_indexer; @@ -184,7 +185,7 @@ if ($stats) { $log->debug("disabled indexing for stats collection"); $use_indexer = undef; -} else { +} elsif ( $use_indexer ) { $log->info("using $use_indexer indexing engine..."); } @@ -211,7 +212,8 @@ return $c; } -while (my ($database, $db_config) = each %{ $config->databases }) { +foreach my $database ( sort keys %{ $config->databases } ) { + my $db_config = $config->databases->{$database}; my ($only_database,$only_input) = split(m#/#, $only_filter) if ($only_filter); next if ($only_database && $database !~ m/$only_database/i); @@ -242,19 +244,19 @@ if ($use_indexer eq 'hyperestraier') { # open Hyper Estraier database - use WebPAC::Output::Estraier '0.10'; + require WebPAC::Output::Estraier; $indexer = new WebPAC::Output::Estraier( %{ $indexer_config } ); } elsif ($use_indexer eq 'hyperestraier-native') { # open Hyper Estraier database - use WebPAC::Output::EstraierNative; + require WebPAC::Output::EstraierNative; $indexer = new WebPAC::Output::EstraierNative( %{ $indexer_config } ); } elsif ($use_indexer eq 'kinosearch') { # open KinoSearch - use WebPAC::Output::KinoSearch; + require WebPAC::Output::KinoSearch; $indexer_config->{clean} = 1 unless (-e $indexer_config->{index_path}); $indexer = new WebPAC::Output::KinoSearch( %{ $indexer_config } ); @@ -262,7 +264,7 @@ $log->logdie("unknown use_indexer: $use_indexer"); } - $log->logide("can't continue without valid indexer") unless ($indexer); + $log->logdie("can't continue without valid indexer") unless ($indexer); } @@ -444,6 +446,11 @@ print $report_fh "Report for database '$database' input '$input_name' records ", $offset || 1, "-", $limit || $input->{limit} || $maxmfn, "\n\n"; $log->info("Generating report file $path"); + + if ( $validate ) { + $validate->read_validate_file( $validate->fill_in( $validate_path, database => $database, input => $input_name ) ) if ( $validate_path ); + $validate->read_validate_delimiters_file( $validate->fill_in( $validate_delimiters_path, database => $database, input => $input_name ) ) if ( $validate_delimiters_path ); + } } my $marc; @@ -614,7 +621,7 @@ } # save new delimiters if needed -$validate->save_delimiters_templates if ( $validate ); +$validate->save_delimiters_templates if ( $validate_delimiters_path ); # # handle links or merge after indexing