X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=lib%2FApp%2FCodeowners.pm;h=c3d01d30ba4151be5ab30e6249bdf7aeb7864d99;hb=fdaa0928fed110d4867b2e08df9497c66ef7718b;hp=efe86f7e88e428bb76108d78c17183300844b12e;hpb=25372f260d4e7e1919a9dfec018476321d1df8e3;p=chaz%2Fgit-codeowners diff --git a/lib/App/Codeowners.pm b/lib/App/Codeowners.pm index efe86f7..c3d01d3 100644 --- a/lib/App/Codeowners.pm +++ b/lib/App/Codeowners.pm @@ -8,7 +8,7 @@ use strict; use App::Codeowners::Options; use App::Codeowners::Util qw(find_codeowners_in_directory run_git git_ls_files git_toplevel stringf); -use Color::ANSI::Util qw(ansifg ansi_reset); +use Color::ANSI::Util 0.03 qw(ansifg); use Encode qw(encode); use File::Codeowners; use Path::Tiny; @@ -174,11 +174,14 @@ sub _format { my $rows = $args{rows} || []; if ($format eq 'table') { - eval { require Text::Table } or die "Missing dependency: Text::Table\n"; + eval { require Text::Table::Any } or die "Missing dependency: Text::Table::Any\n"; - my $table = Text::Table->new(@$headers); - $table->load(map { [map { _stringify($_) } @$_] } @$rows); - print { $fh } encode('UTF-8', "$table"); + my $table = Text::Table::Any::table( + header_row => 1, + rows => [$headers, map { [map { _stringify($_) } @$_] } @$rows], + backend => $ENV{PERL_TEXT_TABLE}, + ); + print { $fh } encode('UTF-8', $table); } elsif ($format =~ /^json(:pretty)?$/) { my $pretty = !!$1; @@ -285,11 +288,12 @@ sub _expand_filter_args { return (\@filters, $color_override); } +sub _ansi_reset { "\033[0m" } + sub _colored { my $text = shift; my $rgb = shift or return $text; - # ansifg honors NO_COLOR already, but ansi_reset does not. return $text if $ENV{NO_COLOR}; $rgb =~ s/^(.)(.)(.)$/$1$1$2$2$3$3/; @@ -298,7 +302,7 @@ sub _colored { return $text; } - my ($begin, $end) = (ansifg($rgb), ansi_reset); + my ($begin, $end) = (ansifg($rgb), _ansi_reset); return "${begin}${text}${end}"; }