File Coverage

blib/lib/WWW/LinkChecker/Internal/App/Command/check.pm
Criterion Covered Total %
statement 14 31 45.1
branch 0 2 0.0
condition 0 2 0.0
subroutine 5 11 45.4
pod 4 4 100.0
total 23 50 46.0


line stmt bran cond sub pod time code
1             package WWW::LinkChecker::Internal::App::Command::check;
2             $WWW::LinkChecker::Internal::App::Command::check::VERSION = '0.14.0';
3 1     1   305480 use strict;
  1         2  
  1         36  
4 1     1   4 use warnings;
  1         2  
  1         73  
5 1     1   17 use 5.014;
  1         2  
6              
7 1     1   370 use WWW::LinkChecker::Internal::App -command;
  1         5  
  1         7  
8              
9 1     1   4013 use WWW::LinkChecker::Internal::API::Worker ();
  1         7  
  1         571  
10              
11             sub description
12             {
13 0     0 1   return "check a site for broken internal links";
14             }
15              
16             sub abstract
17             {
18 0     0 1   return shift->description();
19             }
20              
21             sub opt_spec
22             {
23             return (
24 0     0 1   [ "base=s", "Base URL", ],
25             [ 'before-insert-skip=s@', "before-insert-skip regexes", ],
26             [ 'pre-skip=s@', "pre-skip regexes", ],
27             [ 'only-check-site-flow!', 'only-check-site-flow!', ],
28             [ 'start=s', "alternative start URL", ],
29             [ 'state-filename=s' => 'filename to keep the state', ],
30             );
31             }
32              
33             sub _regexify
34             {
35 0     0     my ( $self, $arr ) = @_;
36              
37 0           return [ map { qr/$_/ } @{$arr} ];
  0            
  0            
38             }
39              
40             sub execute
41             {
42 0     0 1   my ( $self, $opt, $args ) = @_;
43 0   0       my $base_url = ( $opt->{base} // ( die "--base must be specified" ) );
44             my $ret = WWW::LinkChecker::Internal::API::Worker->new(
45             {
46             base_url => $base_url,
47             before_insert_skip =>
48             $self->_regexify( $opt->{before_insert_skip} ),
49             only_check_site_flow => $opt->{only_check_site_flow},
50             pre_skip => $self->_regexify( $opt->{pre_skip} ),
51             start_url => $opt->{start},
52             state_filename => $opt->{state_filename},
53             }
54             )->run(
55             {
56             check_url_inform_cb => sub {
57 0     0     my ($args) = @_;
58 0           my $url = $args->{url};
59 0           print "Checking SRC URL '$url'\n";
60 0           return;
61             },
62              
63             }
64 0           );
65              
66 0 0         if ( $ret->{success} )
67             {
68 0           print
69             "Finished checking the site under the base URL '$base_url'.\nNo broken links were found\n";
70              
71             }
72 0           return;
73             }
74              
75             1;
76              
77             __END__