package Alien::Build::Log::Abbreviate;
use strict;
use warnings;
use 5.008004;
use Term::ANSIColor ();
use Path::Tiny qw( path );
use File::chdir;
use parent qw( Alien::Build::Log );
# ABSTRACT: Log class for Alien::Build which is less verbose
our $VERSION = '2.84'; # VERSION
sub _colored
{
my($code, @out) = @_;
-t STDOUT ? Term::ANSIColor::colored($code, @out) : @out;
}
my $root = path("$CWD");
sub log
{
my(undef, %args) = @_;
my($message) = $args{message};
my ($package, $filename, $line) = @{ $args{caller} };
my $source = $package;
$source =~ s/^Alien::Build::Auto::[^:]+::Alienfile/alienfile/;
my $expected = $package;
$expected .= '.pm' unless $package eq 'alienfile';
$expected =~ s/::/\//g;
if($filename !~ /\Q$expected\E$/)
{
$source = path($filename)->relative($root);
}
else
{
$source =~ s/^Alien::Build::Plugin/ABP/;
$source =~ s/^Alien::Build/AB/;
}
print _colored([ "bold on_black" ], '[');
print _colored([ "bright_green on_black" ], $source);
print _colored([ "on_black" ], ' ');
print _colored([ "bright_yellow on_black" ], $line);
print _colored([ "bold on_black" ], ']');
print _colored([ "white on_black" ], ' ', $message);
print "\n";
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
Alien::Build::Log::Abbreviate - Log class for Alien::Build which is less verbose
=head1 VERSION
version 2.84
=head1 SYNOPSIS
=head1 DESCRIPTION
=head1 METHODS
=head2 log
$log->log(%opts);
Send single log line to stdout.
=head1 AUTHOR
Author: Graham Ollis E