Lines 723-732
sub update {
Link Here
|
723 |
|
723 |
|
724 |
my $error; |
724 |
my $error; |
725 |
|
725 |
|
|
|
726 |
my $out = ''; |
727 |
open my $outfh, '>', \$out; |
726 |
try { |
728 |
try { |
727 |
$schema->txn_do( |
729 |
$schema->txn_do( |
728 |
sub { |
730 |
sub { |
729 |
$db_rev->{up}->(); |
731 |
$db_rev->{up}->({ dbh => $schema->storage->dbh, out => $outfh }); |
730 |
} |
732 |
} |
731 |
); |
733 |
); |
732 |
} catch { |
734 |
} catch { |
Lines 735-747
sub update {
Link Here
|
735 |
|
737 |
|
736 |
my $db_entry = { |
738 |
my $db_entry = { |
737 |
bug_number => $db_rev->{bug_number}, |
739 |
bug_number => $db_rev->{bug_number}, |
738 |
description => ( ref $db_rev->{description} eq 'CODE' ) |
740 |
description => $db_rev->{description}, |
739 |
? $db_rev->{description}->() |
|
|
740 |
: $db_rev->{description}, |
741 |
version => version_from_file($file), |
741 |
version => version_from_file($file), |
742 |
time => POSIX::strftime( "%H:%M:%S", localtime ), |
742 |
time => POSIX::strftime( "%H:%M:%S", localtime ), |
743 |
}; |
743 |
}; |
744 |
$db_entry->{output} = output_version( { %$db_entry, done => !$error } ); |
744 |
$db_entry->{output} = output_version( { %$db_entry, done => !$error, report => $out } ); |
745 |
|
745 |
|
746 |
if ( $error ) { |
746 |
if ( $error ) { |
747 |
push @errors, { %$db_entry, error => $error }; |
747 |
push @errors, { %$db_entry, error => $error }; |
Lines 758-764
sub update {
Link Here
|
758 |
sub output_version { |
758 |
sub output_version { |
759 |
my ( $db_entry ) = @_; |
759 |
my ( $db_entry ) = @_; |
760 |
|
760 |
|
761 |
my $descriptions = $db_entry->{description}; |
761 |
my $description = $db_entry->{description}; |
|
|
762 |
my $report = $db_entry->{report}; |
762 |
my $DBversion = $db_entry->{version}; |
763 |
my $DBversion = $db_entry->{version}; |
763 |
my $bug_number = $db_entry->{bug_number}; |
764 |
my $bug_number = $db_entry->{bug_number}; |
764 |
my $time = $db_entry->{time}; |
765 |
my $time = $db_entry->{time}; |
Lines 768-798
sub output_version {
Link Here
|
768 |
: " failed" |
769 |
: " failed" |
769 |
: ""; # For old versions, we don't know if we succeed or failed |
770 |
: ""; # For old versions, we don't know if we succeed or failed |
770 |
|
771 |
|
771 |
unless ( ref($descriptions) ) { |
772 |
my @output; |
772 |
$descriptions = [ $descriptions ]; |
773 |
|
|
|
774 |
if ($bug_number) { |
775 |
push @output, sprintf('Upgrade to %s %s [%s]: Bug %5s - %s', $DBversion, $done, $time, $bug_number, $description); |
776 |
} else { |
777 |
push @output, sprintf('Upgrade to %s %s [%s]: %s', $DBversion, $done, $time, $description); |
773 |
} |
778 |
} |
774 |
|
779 |
|
775 |
my $first = 1; |
780 |
if ($report) { |
776 |
my @output; |
781 |
foreach my $line (split /\n/, $report) { |
777 |
for my $description ( @$descriptions ) { |
782 |
push @output, sprintf "\t\t\t\t\t\t - %s", $line; |
778 |
if ( @$descriptions > 1 ) { |
|
|
779 |
if ( $first ) { |
780 |
unless ( $bug_number ) { |
781 |
push @output, sprintf "Upgrade to %s%s [%s]:", $DBversion, $done, $time; |
782 |
} else { |
783 |
push @output, sprintf "Upgrade to %s%s [%s]: Bug %5s", $DBversion, $done, $time, $bug_number; |
784 |
} |
785 |
} |
786 |
push @output, sprintf "\t\t\t\t\t\t - %s", $description; |
787 |
} else { |
788 |
unless ( $bug_number ) { |
789 |
push @output, sprintf "Upgrade to %s%s [%s]: %s", $DBversion, $done, $time, $description; |
790 |
} else { |
791 |
push @output, sprintf "Upgrade to %s%s [%s]: Bug %5s - %s", $DBversion, $done, $time, $bug_number, $description; |
792 |
} |
793 |
} |
783 |
} |
794 |
$first = 0; |
|
|
795 |
} |
784 |
} |
|
|
785 |
|
796 |
return \@output; |
786 |
return \@output; |
797 |
} |
787 |
} |
798 |
|
788 |
|