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   69807 use 5.010_001;
  2         12  
4            
5 2     2   10 use strict;
  2         4  
  2         78  
6 2     2   12 use warnings;
  2         4  
  2         126  
7            
8             our $VERSION = '1.001';
9             my $version = $VERSION;
10             $VERSION = eval $VERSION;
11            
12 2     2   929 use App::Pods2Site::Args;
  2         7  
  2         79  
13 2     2   932 use App::Pods2Site::PodFinder;
  2         35  
  2         67  
14 2     2   842 use App::Pods2Site::PodCopier;
  2         5  
  2         65  
15 2     2   784 use App::Pods2Site::Pod2HTML;
  2         6  
  2         77  
16 2     2   13 use App::Pods2Site::Util qw(slashify);
  2         5  
  2         93  
17            
18 2     2   12 use Cwd;
  2         5  
  2         94  
19 2     2   14 use File::Basename;
  2         3  
  2         98  
20 2     2   11 use File::Copy;
  2         4  
  2         988  
21            
22             # main entry point
23             #
24             sub main
25             {
26 3     3 0 6959 my $args = App::Pods2Site::Args->new($version, @_);
27            
28 3         43 my $cwd = slashify(getcwd());
29            
30 3         28 my $workdir = $args->getWorkDir();
31 3 50       53 chdir($workdir) || die("Failed to chdir to '$workdir': $!\n");
32            
33 3 50       24 if ($args->isVerboseLevel(0))
34             {
35 3         130 print "Scanning for pods in:\n";
36 3         28 print " $_\n" foreach ($args->getBinDirs(), $args->getLibDirs());
37             }
38            
39 3         37 my $podFinder = App::Pods2Site::PodFinder->new($args);
40 3         36 my ($sum, $partCounts) = $podFinder->getCounts();
41 3 50       24 die("No pods found!\n") unless $sum;
42 3         17 my $counts = '';
43 3         7 foreach my $groupDef (@{$args->getGroupDefs()})
  3         14  
44             {
45 6 100       26 $counts .= ', ' if $counts;
46 6         38 $counts .= "$groupDef->{name}=$partCounts->{$groupDef->{name}}";
47             }
48 3 50       18 print "Found $sum pods ($counts).\n" if $args->isVerboseLevel(0);
49            
50 3 50       31 print "Preparing pod work tree\n" if $args->isVerboseLevel(0);
51 3         88 my $podCopier = App::Pods2Site::PodCopier->new($args, $podFinder);
52 3 50       13 print "Prepared ", $podCopier->getCount(), " files\n" if $args->isVerboseLevel(0);
53            
54 3         23 my $sitebuilder = $args->getSiteBuilder();
55            
56 3         63 $sitebuilder->prepareCss($args);
57            
58 3 50       21 print "Generating HTML from pods\n" if $args->isVerboseLevel(0);
59 3         24 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         40 $sitebuilder->makeSite($args, $podCopier->getWorkGroups(), $partCounts);
64            
65 3         13 my $siteDir = $args->getSiteDir();
66 3         18 my $style = $args->getStyle();
67 3 50       10 print "Site created in '$siteDir' using style '$style'.\n" if $args->isVerboseLevel(0);
68            
69 3         50 chdir($cwd);
70            
71 3         909 return 0;
72             }
73            
74             1;