sub show_oldrevs($$$)
{
my ($tree, $host, $compiler) = @_;
- my %revs = $db->get_old_revs($tree, $host, $compiler);
- my @revs = sort { if ($b > $a) {return 1;} elsif ($b < $a) {return -1;} else {return 0;} } keys %revs;
+
+ my @revs = $db->get_old_revs($tree, $host, $compiler);
return if ($#revs < 1);
my $lastrev = "";
for my $rev (@revs) {
- my $s = $revs{$rev};
- my $revision = $db->build_revision($host, $tree, $compiler, $rev);
+ my $s = $rev->{STATUS};
+ my $revision = $rev->{REVISION};
$s =~ s/$rev/0/;
next if ($s eq $lastrev);
$lastrev = $s;
- $ret.=$req->Tr($req->td([revision_link($revision, $tree), build_link($host, $tree, $compiler, $rev, $revs{$rev})]));
+ $ret.=$req->Tr($req->td([revision_link($revision, $tree), build_link($host, $tree, $compiler,
+ $rev->{REVISION}, $rev->{STATUS})]));
}
if ($lastrev ne "") {
# Only print table if there was any actual data
opendir(DIR, $directory) || die "can't opendir $directory: $!";
my @list = (grep { /^build\.$tree\.$host\.$compiler-.*\.log$/ } readdir(DIR));
closedir DIR;
- my %ret;
+ my @ret;
for my $l (@list) {
- if ($l =~ /-(\d+).log$/) {
+ if ($l =~ /-([0-9A-Fa-f]+).log$/) {
my $rev = $1;
- $ret{$rev} = $self->build_status($host, $tree, $compiler, $rev);
+ my $r;
+ my $stat = stat($directory . "/" . $l);
+ $r->{STATUS} = $self->build_status($host, $tree, $compiler, $rev);
+ $r->{REVISION} = $rev;
+ $r->{TIMESTAMP} = $stat->ctime;
+ push(@ret, $r);
}
}
- return %ret;
+ @ret = sort { return $b->{TIMESTAMP} - $a->{TIMESTAMP} } @ret;
+
+ return @ret;
}
sub has_host($$)