helm

 view release on metacpan or  search on metacpan

lib/Helm/Log/Channel/console.pm  view on Meta::CPAN

package Helm::Log::Channel::console;
use strict;
use warnings;
use Moose;
use Term::ANSIColor qw(colored color);
use IO::Pipe;
use AnyEvent;
use namespace::autoclean;

extends 'Helm::Log::Channel';
has pipes       => (is => 'ro', writer => '_pipes', isa     => 'HashRef');
has fh          => (is => 'ro', writer => '_fh');
has is_parallel => (is => 'rw', isa    => 'Bool',   default => 0);

my $LINE = '-' x 70;

sub initialize {
    my ($self, $helm) = @_;

    # default FH is STDERR
    Helm->debug("Initializing output handle to STDERR");
    my $fh = IO::Handle->new_from_fd(fileno(STDERR), 'w');
    $self->_fh($fh);
}

sub finalize {
    my ($self, $helm) = @_;
    # make sure the terminal is reset
    print color 'reset';
}

sub start_server {
    my ($self, $server) = @_;
    $self->SUPER::start_server($server);

    if ($self->is_parallel) {
        $self->output("Starting task on $server", 'blue');
    } else {
        $self->output("$LINE\n$server\n$LINE", 'blue');
    }
}

sub end_server {
    my ($self, $server) = @_;
    $self->SUPER::end_server($server);
    if (!$self->is_parallel) {
        $self->fh->print("\n");
    }
}

sub debug {
    my ($self, $msg) = @_;
    $self->output("[DEBUG] $msg", 'bright_blue');
}

sub info {
    my ($self, $msg) = @_;
    $self->output($msg, 'bright_green');
}

sub warn {
    my ($self, $msg) = @_;
    $self->output("[WARN] $msg", 'yellow');
}

sub error {
    my ($self, $msg) = @_;
    $self->output("[ERROR] $msg", 'red');

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 0.371 second using v1.00-cache-2.02-grep-82fe00e-cpan-1925d2aa809 )