Event-ExecFlow
view release on metacpan or search on metacpan
lib/Event/ExecFlow/Frontend/Term.pm view on Meta::CPAN
package Event::ExecFlow::Frontend::Term;
use base qw( Event::ExecFlow::Frontend );
use AnyEvent;
use strict;
sub get_quiet { shift->{quiet} }
sub get_nl_needed { shift->{nl_needed} }
sub set_quiet { shift->{quiet} = $_[1] }
sub set_nl_needed { shift->{nl_needed} = $_[1] }
sub start_job {
my $self = shift;
my ($job) = @_;
my $w = AnyEvent->condvar;
$job->get_post_callbacks->add(sub { $w->broadcast });
$self->SUPER::start_job($job);
$w->wait;
1;
}
sub report_job_start {
my $self = shift;
my ($job) = @_;
return if $self->get_quiet;
$self->new_line;
print "START [".$job->get_name."]: ".
$job->get_progress_text."\n";
1;
}
sub report_job_progress {
my $self = shift;
my ($job) = @_;
return if $self->get_quiet;
print "PROGRESS [".$job->get_name."]: ".
$job->get_progress_text." \r";
$self->set_nl_needed(1);
1;
}
sub report_job_error {
my $self = shift;
my ($job) = @_;
return if $self->get_quiet;
$self->new_line;
print "ERROR [".$job->get_name."]:\n".
$job->get_error_message."\n";
1;
}
sub report_job_warning {
my $self = shift;
my ($job, $message) = @_;
$message ||= $job->get_warning_message;
$self->new_line;
print "WARNING [".$job->get_name."]: $message\n";
1;
}
( run in 1.058 second using v1.01-cache-2.11-cpan-39bf76dae61 )