use WebPAC::Store 0.14;
use WebPAC::Normalize 0.22;
use WebPAC::Output::TT;
-use WebPAC::Validate 0.06;
+use WebPAC::Validate 0.11;
use WebPAC::Output::MARC;
use WebPAC::Config;
use Getopt::Long;
use File::Slurp;
use Data::Dump qw/dump/;
use Storable qw/dclone/;
+use Pod::Usage qw/pod2usage/;
use Proc::Queue size => 1;
use POSIX ":sys_wait_h"; # imports WNOHANG
B<this command will probably go away. Don't get used to it!>
-Options:
+=head1 OPTIONS
=over 4
turn on extra validation of imput records, see L<WebPAC::Validation>
+=item --validate-delimiters path/to/validate_delimiters_file
+
+this option is used with C<--validate> to turn on extra validation of
+delimiters. If file is non existant, it will be created on first run.
+
+=item --marc-generate
+
+Generate MARC file. This will automatically be on if file contains C<marc*> directives.
+You can use this option as C<--no-marc-generate> to disable MARC generation.
+
=item --marc-lint
By default turned on if normalisation file has C<marc*> directives. You can disable lint
my $only_filter;
my $stats = 0;
my $validate_path;
+my $validate_delimiters_path;
+my $marc_generate = 1;
my $marc_lint = 1;
my $marc_dump = 0;
my $parallel = 0;
my $only_links = 0;
my $merge = 0;
+my $help;
my $log = _new WebPAC::Common()->_get_logger();
"debug+" => \$debug,
"stats" => \$stats,
"validate=s" => \$validate_path,
+ "validate-delimiters=s" => \$validate_delimiters_path,
+ "marc-generate!" => \$marc_generate,
"marc-lint!" => \$marc_lint,
"marc-dump!" => \$marc_dump,
"parallel=i" => \$parallel,
"only-links!" => \$only_links,
"merge" => \$merge,
+ "help" => \$help,
);
+pod2usage(-verbose => 2) if ($help);
+
my $config = new WebPAC::Config( path => $config_path );
#print "config = ",dump($config) if ($debug);
$log->info("created merge batch file $estcmd_path");
}
-
my $validate;
$validate = new WebPAC::Validate(
path => $validate_path,
-) if ($validate_path);
-
+ delimiters => $config->webpac('delimiters'),
+ delimiters_path => $validate_delimiters_path,
+) if ($validate_path || $validate_delimiters_path);
my $use_indexer = $config->use_indexer;
$stats ||= $validate;
}
my $marc;
- if ($parser->have_rules( 'marc', $database, $input_name )) {
+ if ($marc_generate && $parser->have_rules( 'marc', $database, $input_name )) {
$marc = new WebPAC::Output::MARC(
path => "out/marc/${database}-${input_name}.marc",
lint => $marc_lint,
$marc->add(
id => $mfn . ( $i ? "/$i" : '' ),
fields => $fields,
- leader => WebPAC::Normalize::marc_leader(),
+ leader => WebPAC::Normalize::_get_marc_leader(),
row => $row,
);
$i++;
$log->info("validation errors:\n$errors\n" );
print $report_fh "$errors\n" if ($report_fh);
}
+
+ print $report_fh "\nAll possible subfields/delimiter templates:\n", $validate->delimiters_templates( report => 1 ), "\n\n";
}
if ($stats) {
$log->info("all parallel processes finished");
}
+# save new delimiters if needed
+$validate->save_delimiters_templates;
+
#
# handle links or merge after indexing
#