169 |
# read database |
# read database |
170 |
for (my $mfn = 1; $mfn <= $maxmfn; $mfn++) { |
for (my $mfn = 1; $mfn <= $maxmfn; $mfn++) { |
171 |
|
|
172 |
|
|
173 |
|
$log->debug("mfn: $mfn\n"); |
174 |
|
|
175 |
# read record |
# read record |
176 |
my $row = OpenIsis::read( $isis_db, $mfn ); |
my $row = OpenIsis::read( $isis_db, $mfn ); |
177 |
foreach my $k (keys %{$row}) { |
foreach my $k (keys %{$row}) { |
198 |
} |
} |
199 |
|
|
200 |
# create lookup |
# create lookup |
201 |
my $rec = $self->{'data'}->{$mfn}; |
my $rec = $self->{'data'}->{$mfn} || $log->confess("record $mfn empty?"); |
202 |
$self->create_lookup($rec, @{$arg->{'lookup'}}); |
$self->create_lookup($rec, @{$arg->{'lookup'}}); |
203 |
|
|
204 |
$self->progress_bar($mfn,$maxmfn); |
$self->progress_bar($mfn,$maxmfn); |
208 |
$self->{'current_mfn'} = 1; |
$self->{'current_mfn'} = 1; |
209 |
$self->{'last_pcnt'} = 0; |
$self->{'last_pcnt'} = 0; |
210 |
|
|
211 |
|
$log->debug("max mfn: $maxmfn"); |
212 |
|
|
213 |
# store max mfn and return it. |
# store max mfn and return it. |
214 |
return $self->{'max_mfn'} = $maxmfn; |
return $self->{'max_mfn'} = $maxmfn; |
215 |
} |
} |
273 |
printf STDERR ("%5d / %5d [%-51s] %-2d %% \r",$curr,$max,"=" x ($p/2).">", $p ); |
printf STDERR ("%5d / %5d [%-51s] %-2d %% \r",$curr,$max,"=" x ($p/2).">", $p ); |
274 |
$self->{'last_pcnt'} = $p; |
$self->{'last_pcnt'} = $p; |
275 |
} |
} |
276 |
|
print STDERR "\n" if ($p == 100); |
277 |
} |
} |
278 |
|
|
279 |
=head2 open_import_xml |
=head2 open_import_xml |
335 |
$log->logconfess("need HASH as first argument!") if ($rec !~ /HASH/o); |
$log->logconfess("need HASH as first argument!") if ($rec !~ /HASH/o); |
336 |
|
|
337 |
foreach my $i (@_) { |
foreach my $i (@_) { |
338 |
if ($i->{'eval'}) { |
$log->logconfess("need key") unless defined($i->{'key'}); |
339 |
my $eval = $self->fill_in($rec,$i->{'eval'}); |
$log->logconfess("need val") unless defined($i->{'val'}); |
340 |
my $key = $self->fill_in($rec,$i->{'key'}); |
|
341 |
my @val = $self->fill_in($rec,$i->{'val'}); |
if (defined($i->{'eval'})) { |
342 |
if ($key && @val && eval $eval) { |
# eval first, so we can skip fill_in for key and val |
343 |
|
my $eval = $self->fill_in($rec,$i->{'eval'}) || next; |
344 |
|
if ($self->_eval($eval)) { |
345 |
|
my $key = $self->fill_in($rec,$i->{'key'}) || next; |
346 |
|
my @val = $self->fill_in($rec,$i->{'val'}) || next; |
347 |
$log->debug("stored $key = ",sub { join(" | ",@val) }); |
$log->debug("stored $key = ",sub { join(" | ",@val) }); |
348 |
push @{$self->{'lookup'}->{$key}}, @val; |
push @{$self->{'lookup'}->{$key}}, @val; |
349 |
} |
} |
350 |
} else { |
} else { |
351 |
my $key = $self->fill_in($rec,$i->{'key'}); |
my $key = $self->fill_in($rec,$i->{'key'}) || next; |
352 |
my @val = $self->fill_in($rec,$i->{'val'}); |
my @val = $self->fill_in($rec,$i->{'val'}) || next; |
353 |
if ($key && @val) { |
$log->debug("stored $key = ",sub { join(" | ",@val) }); |
354 |
$log->debug("stored $key = ",sub { join(" | ",@val) }); |
push @{$self->{'lookup'}->{$key}}, @val; |
|
push @{$self->{'lookup'}->{$key}}, @val; |
|
|
} |
|
355 |
} |
} |
356 |
} |
} |
357 |
} |
} |
783 |
return $out; |
return $out; |
784 |
} |
} |
785 |
|
|
786 |
|
=head2 output_file |
787 |
|
|
788 |
|
Create output from in-memory data structure using Template Toolkit template |
789 |
|
to a file. |
790 |
|
|
791 |
|
$webpac->output_file( |
792 |
|
file => 'out.txt', |
793 |
|
template => 'text.tt', |
794 |
|
data => @ds |
795 |
|
); |
796 |
|
|
797 |
|
=cut |
798 |
|
|
799 |
|
sub output_file { |
800 |
|
my $self = shift; |
801 |
|
|
802 |
|
my $args = {@_}; |
803 |
|
|
804 |
|
my $log = $self->_get_logger(); |
805 |
|
|
806 |
|
$log->logconfess("need file name") if (! $args->{'file'}); |
807 |
|
|
808 |
|
$log->debug("creating file ",$args->{'file'}); |
809 |
|
|
810 |
|
open(my $fh, ">", $args->{'file'}) || $log->logdie("can't open output file '$self->{'file'}': $!"); |
811 |
|
print $fh $self->output( |
812 |
|
template => $args->{'template'}, |
813 |
|
data => $args->{'data'}, |
814 |
|
) || $log->logdie("print: $!"); |
815 |
|
close($fh) || $log->logdie("close: $!"); |
816 |
|
} |
817 |
|
|
818 |
=head2 apply_format |
=head2 apply_format |
819 |
|
|
820 |
Apply format specified in tag with C<format_name="name"> and |
Apply format specified in tag with C<format_name="name"> and |