File Coverage

blib/lib/App/Pods2Site.pm
Criterion Covered Total %
statement 62 62 100.0
branch 11 20 55.0
condition n/a
subroutine 12 12 100.0
pod 0 1 0.0
total 85 95 89.4


line stmt bran cond sub pod time code
1             package App::Pods2Site;
2            
3 2     2   73649 use 5.010_001;
  2         13  
4            
5 2     2   11 use strict;
  2         4  
  2         71  
6 2     2   12 use warnings;
  2         4  
  2         152  
7            
8             our $VERSION = '1.002';
9             my $version = $VERSION;
10             $VERSION = eval $VERSION;
11            
12 2     2   919 use App::Pods2Site::Args;
  2         7  
  2         79  
13 2     2   942 use App::Pods2Site::PodFinder;
  2         39  
  2         67  
14 2     2   834 use App::Pods2Site::PodCopier;
  2         5  
  2         65  
15 2     2   813 use App::Pods2Site::Pod2HTML;
  2         6  
  2         83  
16 2     2   15 use App::Pods2Site::Util qw(slashify);
  2         4  
  2         101  
17            
18 2     2   12 use Cwd;
  2         5  
  2         99  
19 2     2   13 use File::Basename;
  2         4  
  2         107  
20 2     2   13 use File::Copy;
  2         5  
  2         955  
21            
22             # main entry point
23             #
24             sub main
25             {
26 3     3 0 6898 my $args = App::Pods2Site::Args->new($version, @_);
27            
28 3         45 my $cwd = slashify(getcwd());
29            
30 3         21 my $workdir = $args->getWorkDir();
31 3 50       57 chdir($workdir) || die("Failed to chdir to '$workdir': $!\n");
32            
33 3 50       21 if ($args->isVerboseLevel(0))
34             {
35 3         122 print "Scanning for pods in:\n";
36 3         28 print " $_\n" foreach ($args->getBinDirs(), $args->getLibDirs());
37             }
38            
39 3         43 my $podFinder = App::Pods2Site::PodFinder->new($args);
40 3         43 my ($sum, $partCounts) = $podFinder->getCounts();
41 3 50       27 die("No pods found!\n") unless $sum;
42 3         22 my $counts = '';
43 3         15 foreach my $groupDef (@{$args->getGroupDefs()})
  3         23  
44             {
45 6 100       26 $counts .= ', ' if $counts;
46 6         39 $counts .= "$groupDef->{name}=$partCounts->{$groupDef->{name}}";
47             }
48 3 50       22 print "Found $sum pods ($counts).\n" if $args->isVerboseLevel(0);
49            
50 3 50       24 print "Preparing pod work tree\n" if $args->isVerboseLevel(0);
51 3         78 my $podCopier = App::Pods2Site::PodCopier->new($args, $podFinder);
52 3 50       11 print "Prepared ", $podCopier->getCount(), " files\n" if $args->isVerboseLevel(0);
53            
54 3         30 my $sitebuilder = $args->getSiteBuilder();
55            
56 3         63 $sitebuilder->prepareCss($args);
57            
58 3 50       18 print "Generating HTML from pods\n" if $args->isVerboseLevel(0);
59 3         34 my $pod2html = App::Pods2Site::Pod2HTML->new($args, $podCopier->getPodRoot(), $podCopier->getWorkGroups());
60            
61 3 50       21 print "Generated ", $pod2html->getGenerated(), " documents (", $pod2html->getUptodate(), " up to date)\n" if $args->isVerboseLevel(0);
62            
63 3         43 $sitebuilder->makeSite($args, $podCopier->getWorkGroups(), $partCounts);
64            
65 3         13 my $siteDir = $args->getSiteDir();
66 3         14 my $style = $args->getStyle();
67 3 50       7 print "Site created in '$siteDir' using style '$style'.\n" if $args->isVerboseLevel(0);
68            
69 3         55 chdir($cwd);
70            
71 3         943 return 0;
72             }
73            
74             1;