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
|
package App::Beam::List;
use strict;
use Carp;
use POSIX qw(strftime);
use Unix::Sysexits;
use Getopt::Long qw(GetOptionsFromArray);
use App::Beam qw(:result);
our @ISA = qw(App::Beam);
my %result_string = (
RESULT_PENDING() => 'PENDING',
RESULT_SUCCESS() => 'SUCCESS',
RESULT_FAILURE() => 'FAILURE'
);
sub run {
my $self = shift;
my $verbose;
shift;
GetOptionsFromArray(\@_, "verbose|v" => \$verbose);
$self->abend(EX_USAGE, "bad number of arguments") if @_;
$self->lock();
my @stat = @{$self->{status}};
shift @stat;
foreach my $ent (@stat) {
print strftime "%c ", localtime $ent->{timestamp};
printf("% 3d% 3d% 3d %s", $ent->{cycle}, $ent->{round}, $ent->{level},
$result_string{$ent->{result}});
print "\n";
if ($verbose) {
my %detail;
@detail{keys %{$ent->{detail}}} = values %{$ent->{detail}};
foreach my $item (split /\s+/, $self->get('core.items')) {
if (exists($detail{$item})) {
printf("# %-24s %s\n", $item, $result_string{$detail{$item}});
delete $detail{$item};
}
}
foreach my $item (sort keys %detail) {
printf("# %-24s %s\n", $item, $result_string{$detail{$item}});
}
}
}
$self->unlock();
}
1;
|