|
Lines 24-29
use diagnostics;
Link Here
|
| 24 |
use C4::InstallAuth; |
24 |
use C4::InstallAuth; |
| 25 |
use CGI qw ( -utf8 ); |
25 |
use CGI qw ( -utf8 ); |
| 26 |
use POSIX qw(strftime); |
26 |
use POSIX qw(strftime); |
|
|
27 |
use Capture::Tiny qw(capture); |
| 27 |
|
28 |
|
| 28 |
use C4::Context; |
29 |
use C4::Context; |
| 29 |
use C4::Output; |
30 |
use C4::Output; |
|
Lines 388-427
elsif ( $step && $step == 3 ) {
Link Here
|
| 388 |
chk_log( $logdir, "updatedatabase-error_$filename_suffix" ) |
389 |
chk_log( $logdir, "updatedatabase-error_$filename_suffix" ) |
| 389 |
); |
390 |
); |
| 390 |
|
391 |
|
| 391 |
my $cmd = C4::Context->config("intranetdir") |
392 |
my $script = C4::Context->config("intranetdir") . "/installer/data/$info{dbms}/updatedatabase.pl"; |
| 392 |
. "/installer/data/$info{dbms}/updatedatabase.pl >> $logfilepath 2>> $logfilepath_errors"; |
393 |
my ($stdout, $stderr, $exit) = capture { do( $script ) }; |
|
|
394 |
warn "Cannot execute $script: ".($@ || $!) if $@ || $!; |
| 393 |
|
395 |
|
| 394 |
system($cmd ); |
396 |
if ($stdout) { |
| 395 |
|
397 |
if ( open( my $fh, ">>", $logfilepath ) ) { |
| 396 |
my $fh; |
398 |
print $fh $stdout; |
| 397 |
open( $fh, "<", $logfilepath ) |
399 |
close $fh; |
| 398 |
or die "Cannot open log file $logfilepath: $!"; |
400 |
} |
| 399 |
my @report = <$fh>; |
401 |
else { |
| 400 |
close $fh; |
402 |
warn "Cannot open log file $logfilepath: $!"; |
| 401 |
if (@report) { |
403 |
} |
| 402 |
$template->param( update_report => |
404 |
$template->param( update_report => [ map { line => $_ }, split( /\n/, $stdout ) ] ); |
| 403 |
[ map { { line => $_ } } split( /\n/, join( '', @report ) ) ] |
|
|
| 404 |
); |
| 405 |
$template->param( has_update_succeeds => 1 ); |
405 |
$template->param( has_update_succeeds => 1 ); |
| 406 |
} |
406 |
} |
| 407 |
else { |
407 |
else { |
| 408 |
eval { `rm $logfilepath` }; |
408 |
# eval { `rm $logfilepath` }; |
| 409 |
} |
409 |
} |
| 410 |
open( $fh, "<", $logfilepath_errors ) |
410 |
|
| 411 |
or die "Cannot open log file $logfilepath_errors: $!"; |
411 |
if ($stderr) { |
| 412 |
@report = <$fh>; |
412 |
if ( open( my $fh, ">>", $logfilepath_errors ) ) { |
| 413 |
close $fh; |
413 |
print $fh $stderr; |
| 414 |
if (@report) { |
414 |
close $fh; |
| 415 |
$template->param( update_errors => |
415 |
} |
| 416 |
[ map { { line => $_ } } split( /\n/, join( '', @report ) ) ] |
416 |
else { |
| 417 |
); |
417 |
warn "Cannot open log file $logfilepath_errors: $!"; |
|
|
418 |
} |
| 419 |
my @errors = split( /\n/, $stderr ); |
| 420 |
$template->param( update_errors => [ map { line => $_ }, @errors ] ); |
| 418 |
$template->param( has_update_errors => 1 ); |
421 |
$template->param( has_update_errors => 1 ); |
| 419 |
warn |
422 |
warn "The following errors were returned while attempting to run the updatedatabase.pl script:\n"; |
| 420 |
"The following errors were returned while attempting to run the updatedatabase.pl script:\n"; |
423 |
warn $_ foreach @errors; |
| 421 |
foreach my $line (@report) { warn "$line\n"; } |
|
|
| 422 |
} |
424 |
} |
| 423 |
else { |
425 |
else { |
| 424 |
eval { `rm $logfilepath_errors` }; |
426 |
# eval { `rm $logfilepath_errors` }; |
| 425 |
} |
427 |
} |
| 426 |
$template->param( $op => 1 ); |
428 |
$template->param( $op => 1 ); |
| 427 |
} |
429 |
} |
| 428 |
- |
|
|