]> Dogcows Code - chaz/git-codeowners/blobdiff - lib/App/Codeowners.pm
embed ansi reset sequence to improve compatibility
[chaz/git-codeowners] / lib / App / Codeowners.pm
index efe86f7e88e428bb76108d78c17183300844b12e..c3d01d30ba4151be5ab30e6249bdf7aeb7864d99 100644 (file)
@@ -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}";
 }
 
This page took 0.0287 seconds and 4 git commands to generate.