use WebPAC::Input 0.16;
use WebPAC::Store 0.15;
use WebPAC::Normalize 0.22;
-use WebPAC::Output::TT;
+#use WebPAC::Output::TT;
use WebPAC::Validate 0.11;
use WebPAC::Output::MARC;
use WebPAC::Config;
use Data::Dump qw/dump/;
use Storable qw/dclone/;
use Pod::Usage qw/pod2usage/;
+use LWP::Simple qw//;
use POSIX ":sys_wait_h"; # imports WNOHANG
Create merged index of databases which have links
+=item --mirror http://www.example.com
+
+Tries to download input path files from mirror URI
+
=back
=cut
my $parallel = 0;
my $only_links = 0;
my $merge = 0;
+my $mirror;
my $help;
my $log = _new WebPAC::Common()->_get_logger();
"parallel=i" => \$parallel,
"only-links!" => \$only_links,
"merge" => \$merge,
+ "mirror=s" => \$mirror,
"help" => \$help,
);
delete($input->{modify_file});
}
+ if ( $mirror ) {
+ my $path = $input->{path} || die "no input path in ",dump( $input );
+
+ my $base = $path;
+ $base =~ s{/[^/]+$}{};
+ mkpath $base unless -e $base;
+
+ 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" );
+ }
+
+ }
+
my $input_db = new WebPAC::Input(
module => $input_module,
limit => $limit || $input->{limit},
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 ",
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,
);
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 ) ) {