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