blob: a92d6d6f5ebbe4a699b4e1b3e3a25b19424f119b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
#!/bin/perl
use strict;
use warnings;
use utf8;
use Data::Dumper;
use File::Basename;
use Cwd;
use Encode 'encode_utf8';
# teplates
use Text::Xslate;
# yaml (quick) parser
use YAML::Syck;
our $srcdir = dirname(__FILE__);
sub html_printer
{
my $results = $_[0];
my $task_ids = $_[1];
my $xslate = Text::Xslate->new(path => ["$srcdir/result_templates"]);
my $content = $xslate->render("html.tmpl", {
results => $results,
task_ids => $task_ids,
});
print encode_utf8($content);
}
my $workdir = $ARGV[0];
my $data = [];
my $task_ids = {};
# go through *each* result directory
my $olddir = getcwd;
for (`find "$workdir" -maxdepth 1 -type d -name 'result_*'`) {
chomp;
chdir $_;
my $run_results = {};
$run_results->{dirname} = basename($_);
$run_results->{tasks} = {};
$run_results->{exit_status} = 0;
# go through each task
for (`find -maxdepth 1 -type f -name '*.result'`) {
chomp;
(my $task_id = $_) =~ s/\.result$//;
$task_id =~ s/.*\///;
$task_ids->{$task_id} = 1;
my $yaml_file = $_;
open my $fd, '<', $yaml_file
or die "can't open yaml file '$yaml_file'";
my $config = YAML::Syck::LoadFile($fd);
if ($config->{exit_status} != 0) {
$run_results->{exit_status} = 1;
}
$run_results->{tasks}->{$task_id} = $config;
}
push @{$data}, $run_results;
}
chdir $olddir;
html_printer $data, $task_ids;
|