File Coverage

blib/lib/App/Du/Analyze.pm
Criterion Covered Total %
statement 53 58 91.3
branch 10 16 62.5
condition n/a
subroutine 11 11 100.0
pod 3 3 100.0
total 77 88 87.5


line stmt bran cond sub pod time code
1             package App::Du::Analyze;
2             $App::Du::Analyze::VERSION = '0.2.2';
3 1     1   157768 use strict;
  1         13  
  1         34  
4 1     1   6 use warnings;
  1         1  
  1         32  
5              
6 1     1   6 use autodie;
  1         2  
  1         8  
7              
8 1     1   5535 use 5.008;
  1         7  
9              
10 1     1   781 use Getopt::Long qw( GetOptionsFromArray );
  1         11177  
  1         5  
11 1     1   804 use Pod::Usage;
  1         49356  
  1         134  
12              
13 1     1   615 use App::Du::Analyze::Filter;
  1         3  
  1         503  
14              
15             sub argv
16             {
17 24     24 1 48 my $self = shift;
18              
19 24 100       58 if (@_)
20             {
21 12         30 $self->{argv} = shift;
22             }
23              
24 24         52 return $self->{argv};
25             }
26              
27             sub new
28             {
29 12     12 1 35635 my $class = shift;
30              
31 12         30 my $self = bless {}, $class;
32              
33 12         39 $self->_init(@_);
34              
35 12         27 return $self;
36             }
37              
38             sub _init
39             {
40 12     12   24 my ( $self, $args ) = @_;
41              
42 12         39 $self->argv( $args->{argv} );
43              
44 12         20 return;
45             }
46              
47             sub run
48             {
49 12     12 1 26 my ($self) = @_;
50              
51 12         18 my $prefix = "";
52 12         18 my $depth = 1;
53 12         16 my $sort = 1;
54 12         14 my $man = 0;
55 12         20 my $help = 0;
56 12         15 my $version = 0;
57              
58 12         21 my @argv = @{ $self->argv };
  12         20  
59              
60 12 50       50 GetOptionsFromArray(
61             \@argv,
62             "prefix|p=s" => \$prefix,
63             "depth|d=n" => \$depth,
64             "sort" => \$sort,
65             "help|h" => \$help,
66             "man" => \$man,
67             "version" => \$version,
68             ) or pod2usage(2);
69              
70 12 50       8185 if ($help)
71             {
72 0         0 pod2usage(1);
73             }
74              
75 12 50       30 if ($man)
76             {
77 0         0 pod2usage( -verbose => 2 );
78             }
79              
80 12 50       25 if ($version)
81             {
82 0         0 print "analyze-du.pl version $App::Du::Analyze::VERSION\n";
83 0         0 exit(0);
84             }
85              
86 12         19 my $in_fh;
87              
88             my $filename;
89 12 100       37 if ( !defined( $filename = $ENV{ANALYZE_DU_INPUT_FN} ) )
90             {
91 6         12 $filename = shift(@argv);
92             }
93              
94 12 50       27 if ( !defined($filename) )
95             {
96 0         0 $in_fh = \*STDIN;
97             }
98             else
99             {
100 12         44 open $in_fh, '<', $filename;
101             }
102              
103 12         3985 App::Du::Analyze::Filter->new(
104             {
105             prefix => $prefix,
106             depth => $depth,
107             should_sort => $sort,
108             }
109             )->filter( $in_fh, \*STDOUT );
110              
111 12 50       67 if ( defined($filename) )
112             {
113 12         47 close($in_fh);
114             }
115              
116 12         1756 return;
117             }
118              
119             1;
120              
121             __END__