File Coverage

blib/lib/Check/Term/Color.pm
Criterion Covered Total %
statement 23 26 88.4
branch 9 12 75.0
condition 7 8 87.5
subroutine 5 5 100.0
pod 1 1 100.0
total 45 52 86.5


line stmt bran cond sub pod time code
1             package Check::Term::Color;
2              
3 3     3   135643 use base qw(Exporter);
  3         6  
  3         410  
4 3     3   20 use strict;
  3         13  
  3         70  
5 3     3   12 use warnings;
  3         6  
  3         138  
6              
7 3     3   1737 use Readonly;
  3         13063  
  3         1123  
8              
9             Readonly::Array our @EXPORT_OK => qw(check_term_color);
10              
11             our $VERSION = 0.01;
12              
13             sub check_term_color {
14 7     7 1 247019 my $env_hr = shift;
15              
16 7   50     24 $env_hr ||= \%ENV;
17              
18 7         10 my $ret;
19 7 100       30 if (exists $env_hr->{'NO_COLOR'}) {
    100          
20 1         2 $ret = 0;
21             } elsif (defined $env_hr->{'COLOR'}) {
22 5 100 100     44 if ($env_hr->{'COLOR'} eq 'always'
    100 100        
    50          
23             || $env_hr->{'COLOR'} eq 'yes') {
24              
25 2         9 $ret = 1;
26             } elsif ($env_hr->{'COLOR'} eq 'never'
27             || $env_hr->{'COLOR'} eq 'no') {
28              
29 2         5 $ret = 0;
30             } elsif ($env_hr->{'COLOR'} eq 'auto') {
31 0 0       0 if (-t STDOUT) {
32 0         0 $ret = 1;
33             } else {
34 0         0 $ret = 0;
35             }
36             } else {
37 1         3 $ret = 1;
38             }
39             } else {
40 1         2 $ret = 0;
41             }
42              
43 7         17 return $ret;
44             }
45              
46             1;
47              
48             __END__