File Coverage

blib/lib/App/Term2HTML.pm
Criterion Covered Total %
statement 27 33 81.8
branch 2 4 50.0
condition n/a
subroutine 8 11 72.7
pod 1 1 100.0
total 38 49 77.5


line stmt bran cond sub pod time code
1             package App::Term2HTML;
2 3     3   117013 use strict;
  3         8  
  3         84  
3 3     3   16 use warnings;
  3         6  
  3         92  
4 3     3   3594 use Getopt::Long qw/GetOptionsFromArray/;
  3         39994  
  3         19  
5 3     3   3126 use IO::Interactive::Tiny;
  3         30  
  3         87  
6 3     3   2399 use HTML::FromANSI::Tiny;
  3         3739  
  3         14  
7              
8             our $VERSION = '0.01';
9              
10             sub run {
11 1     1 1 2410 my $self = shift;
12 1         3 my @argv = @_;
13              
14 1         2 my $config = {};
15 1         4 _merge_opt($config, @argv);
16              
17 1         215 _main($config);
18             }
19              
20             sub _main {
21 1     1   3 my $config = shift;
22              
23 1         11 my $h = HTML::FromANSI::Tiny->new(
24             inline_style => 1,
25             );
26              
27 1 50       10157 if ( !IO::Interactive::Tiny::is_interactive(*STDIN) ) {
28 1         23 while (my $stdin = ) {
29 1         6 print $h->html($stdin);
30             }
31             }
32             }
33              
34             sub _merge_opt {
35 1     1   3 my ($config, @argv) = @_;
36              
37             GetOptionsFromArray(
38             \@argv,
39             'h|help' => sub {
40 0     0     _show_usage(1);
41             },
42             'v|version' => sub {
43 0     0     print "$0 $VERSION\n";
44 0           exit 1;
45             },
46 1 50       11 ) or _show_usage(2);
47             }
48              
49             sub _show_usage {
50 0     0     my $exitval = shift;
51              
52 0           require Pod::Usage;
53 0           Pod::Usage::pod2usage(-exitval => $exitval);
54             }
55              
56             1;
57              
58             __END__