diff options
author | Pavel Raiskup <praiskup@redhat.com> | 2014-10-24 10:02:41 +0200 |
---|---|---|
committer | Pavel Raiskup <praiskup@redhat.com> | 2014-10-24 10:02:41 +0200 |
commit | fbe706dccdd35bfdfd163b7107ea90f801830321 (patch) | |
tree | f87730d347a5029ca998cd8d2447a8fdc2c927be /controller/libexec/dtf-result-stats.in | |
parent | a2f777c19494999c5bec3ee50b63a627155d5d9b (diff) | |
download | postgresql-setup-tests-fbe706dccdd35bfdfd163b7107ea90f801830321.tar.gz postgresql-setup-tests-fbe706dccdd35bfdfd163b7107ea90f801830321.tar.xz postgresql-setup-tests-fbe706dccdd35bfdfd163b7107ea90f801830321.zip |
controller: autoconfiscate #2
Move 'results_stats' and 'commit_results' binaries into libexec
and adjust appropriately. Also html template is now in
$pkgdatadir.
* .gitignore: Add tags/ChangeLog generated files.
* README: Just some random notes. Needs to be rewritten anyway.
* controller/.gitignore: Add newly 'make'd files.
* controller/Makefile.am: Generate libexec/bin files.
* controller/commit_results: Move to controller/libexec as
dtf-result-stats.in.
* controller/configure.ac: Also substitute resulttemplatedir.
* controller/etc/dtf.conf.d/config.sh.template: The DTF_DATABASE
was misleading - use rather DTF_DATABASE_DEFAULT.
* controller/libexec/dtf-commit-results.in: Moved from
controller/commit_results.
* controller/result_stats: Moved to
controller/libexec/dtf-result-stats.in.
* controller/libexec/dtf-result-stats.in: Moved from
controller/result_stats.
* controller/result_templates/html.tmpl: Moved to
controller/share/dtf-controller/results-stats-templates/html.tmpl.
Diffstat (limited to 'controller/libexec/dtf-result-stats.in')
-rw-r--r-- | controller/libexec/dtf-result-stats.in | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/controller/libexec/dtf-result-stats.in b/controller/libexec/dtf-result-stats.in new file mode 100644 index 0000000..d4db46f --- /dev/null +++ b/controller/libexec/dtf-result-stats.in @@ -0,0 +1,79 @@ +#!/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 => ['@resulttemplatedir@']); + + my $content = $xslate->render("html.tmpl", { + results => $results, + task_ids => $task_ids, + }); + print encode_utf8($content); +} + +if (! defined $ARGV[0] || ! -d $ARGV[0]) { + print STDERR "Please specify correct working directory\n"; + exit (1); +} + +my $workdir = $ARGV[0]; + +my $data = []; + +my $task_ids = {}; + +# go through *each* result directory +my $olddir = getcwd; +for (`find "$workdir" -maxdepth 1 -type d`) { + 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; |