summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lib/jitterbug.pm27
1 files changed, 24 insertions, 3 deletions
diff --git a/lib/jitterbug.pm b/lib/jitterbug.pm
index 8110def..e4ebab2 100644
--- a/lib/jitterbug.pm
+++ b/lib/jitterbug.pm
@@ -12,9 +12,30 @@ load_app 'jitterbug::WebService', prefix => '/api';
load_app 'jitterbug::Task', prefix => '/task';
get '/' => sub {
- my @projects = redis->smembers(key_projects);
- my @builds = redis->smembers(key_tasks);
- template 'index', {projects => \@projects, builds => \@builds};
+
+ my @proj_name = redis->smembers(key_projects);
+ my @projects = ();
+
+ foreach (@proj_name) {
+ my $proj = redis->get(key_project($_));
+ next unless $proj;
+ debug("on a $proj");
+ my $desc = from_json($proj);
+ my @ids = redis->smembers( key_builds_project($_) );
+ my $res = redis->get( pop @ids );
+ if ($res) {
+ my $last_build = from_json($res);
+ $desc->{last_build} = $last_build;
+ }
+ push @projects, $desc;
+ }
+
+ @projects =
+ sort { $b->{last_build}->{timestamp} cmp $a->{last_build}->{timestamp} }
+ @projects;
+
+ my @tasks = redis->smembers(key_tasks);
+ template 'index', {projects => \@projects, tasks => \@tasks};
};
true;