File Coverage

lib/CPANPLUS/Internals/Constants.pm
Criterion Covered Total %
statement 274 316 86.7
branch 27 52 51.9
condition 3 8 37.5
subroutine 79 80 98.8
pod 0 1 0.0
total 383 457 83.8


line stmt bran cond sub pod time code
1             package CPANPLUS::Internals::Constants;
2              
3 156     15   22638 use strict;
  25         754  
  52         3194  
4              
5 20     15   619 use CPANPLUS::Error;
  16         287  
  15         844  
6              
7 16     15   345 use File::Spec;
  26         5969  
  82         2851  
8 15     15   306 use Locale::Maketext::Simple Class => 'CPANPLUS', Style => 'gettext';
  18         224  
  15         298  
9              
10             require Exporter;
11 16     15   274 use vars qw[$VERSION @ISA @EXPORT];
  16         177  
  25         615  
12              
13 27     15   1036 use Package::Constants;
  24         3257  
  24         783  
14              
15              
16             $VERSION    = 0.01;
17             @ISA        = qw[Exporter];
18             @EXPORT     = Package::Constants->list( __PACKAGE__ );
19              
20              
21 0     0 0   sub constants { @EXPORT };
22              
23 16         1984 use constant INSTALLER_BUILD
24 15     15   307                             => 'CPANPLUS::Dist::Build';
  16         157  
25 15     15   392 use constant INSTALLER_MM => 'CPANPLUS::Dist::MM';
  15         142  
  15         194  
26 16         350 use constant INSTALLER_SAMPLE
27 15     15   238                             => 'CPANPLUS::Dist::Sample';
  16         33273  
28 30     15   781 use constant INSTALLER_BASE => 'CPANPLUS::Dist::Base';
  15         199  
  15         306  
29              
30 15     15   264 use constant CONFIG => 'CPANPLUS::Config';
  15         167  
  15         189  
31 15     15   244 use constant CONFIG_USER => 'CPANPLUS::Config::User';
  15         177  
  15         247  
32 15     15   2674 use constant CONFIG_SYSTEM => 'CPANPLUS::Config::System';
  15         141  
  15         292  
33              
34 15     15   336 use constant TARGET_CREATE => 'create';
  15         137  
  15         184  
35 15     15   334 use constant TARGET_PREPARE => 'prepare';
  15         141  
  15         217  
36 15     15   223 use constant TARGET_INSTALL => 'install';
  15         156  
  15         189  
37 15     15   218 use constant TARGET_IGNORE => 'ignore';
  15         163  
  15         251  
38 15 100   15   290 use constant DOT_CPANPLUS => $^O eq 'VMS' ? '_cpanplus' : '.cpanplus';
  15         205  
  15         353  
39              
40 15     15   228 use constant OPT_AUTOFLUSH => '-MCPANPLUS::Internals::Utils::Autoflush';
  15         136  
  15         188  
41              
42 15         190 use constant UNKNOWN_DL_LOCATION
43 15     15   291                             => 'UNKNOWN-ORIGIN';
  15         141  
44              
45 16     15   336 use constant NMAKE => 'nmake.exe';
  15         135  
  15         272  
46 15         192 use constant NMAKE_URL =>
47 15     15   1267                         'ftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe';
  15         140  
48              
49             use constant INSTALL_VIA_PACKAGE_MANAGER
50 0 100       0                             => sub { my $fmt = $_[0] or return;
51 0 100 33     0                                      return 1 if $fmt ne INSTALLER_BUILD and
52                                                              $fmt ne INSTALLER_MM;
53 15     15   265                             };
  15         140  
  15         860  
54              
55 15     15   330 use constant IS_CODEREF => sub { ref $_[-1] eq 'CODE' };
  15         144  
  15         300  
  2         82  
56 110         5309 use constant IS_MODOBJ => sub { UNIVERSAL::isa($_[-1],
57 15     15   2402                                             'CPANPLUS::Module') };
  15         190  
  15         291  
58 0         0 use constant IS_FAKE_MODOBJ => sub { UNIVERSAL::isa($_[-1],
59 15     15   264                                             'CPANPLUS::Module::Fake') };
  15         282  
  15         252  
60 192         5554 use constant IS_AUTHOBJ => sub { UNIVERSAL::isa($_[-1],
61 15     15   331                                             'CPANPLUS::Module::Author') };
  15         247  
  15         440  
62             use constant IS_FAKE_AUTHOBJ
63 0         0                             => sub { UNIVERSAL::isa($_[-1],
64 15     15   230                                             'CPANPLUS::Module::Author::Fake') };
  15         138  
  15         350  
65              
66 20         973 use constant IS_CONFOBJ => sub { UNIVERSAL::isa($_[-1],
67 15     15   287                                             'CPANPLUS::Configure') };
  15         138  
  15         278  
68              
69 0         0 use constant IS_RVOBJ => sub { UNIVERSAL::isa($_[-1],
70 15     15   398                                             'CPANPLUS::Backend::RV') };
  15         410  
  15         252  
71                                                         
72             use constant IS_INTERNALS_OBJ
73 13         1930                             => sub { UNIVERSAL::isa($_[-1],
74 15     15   232                                             'CPANPLUS::Internals') };
  15         161  
  15         246  
75                                                         
76 15 50   15   263 use constant IS_FILE => sub { return 1 if -e $_[-1] };
  15         136  
  15         219  
  144         14777  
77              
78             use constant FILE_EXISTS => sub {
79 0         0                                     my $file = $_[-1];
80 0 50       0                                     return 1 if IS_FILE->($file);
81 0         0                                     local $Carp::CarpLevel =
82                                                         $Carp::CarpLevel+2;
83 0         0                                     error(loc( q[File '%1' does not exist],
84                                                             $file));
85 0         0                                     return;
86 15     15   283                             };
  15         3447  
  15         248  
87              
88             use constant FILE_READABLE => sub {
89 19         290                                     my $file = $_[-1];
90 19 50 33     2660                                     return 1 if -e $file && -r _;
91 0         0                                     local $Carp::CarpLevel =
92                                                         $Carp::CarpLevel+2;
93 0         0                                     error( loc( q[File '%1' is not readable ].
94                                                             q[or does not exist], $file));
95 0         0                                     return;
96 15     15   298                             };
  15         194  
  15         274  
97 15 100   15   272 use constant IS_DIR => sub { return 1 if -d $_[-1] };
  15         240  
  15         326  
  50         5022  
98              
99             use constant DIR_EXISTS => sub {
100 49         1676                                     my $dir = $_[-1];
101 49 100       738                                     return 1 if IS_DIR->($dir);
102 1         159                                     local $Carp::CarpLevel =
103                                                         $Carp::CarpLevel+2;
104 1         221                                     error(loc(q[Dir '%1' does not exist],
105                                                         $dir));
106 1         91                                     return;
107 15     15   349                             };
  15         142  
  15         197  
108              
109             use constant MAKEFILE_PL => sub { return @_
110 15 100       481                                         ? File::Spec->catfile( @_,
111                                                                         'Makefile.PL' )
112                                                     : 'Makefile.PL';
113 15     15   263                             };
  15         164  
  15         371  
114             use constant MAKEFILE => sub { return @_
115 2 100       310                                         ? File::Spec->catfile( @_,
116                                                                         'Makefile' )
117                                                     : 'Makefile';
118 15     15   239                             };
  15         169  
  15         196  
119             use constant BUILD_PL => sub { return @_
120 17 100       1713                                         ? File::Spec->catfile( @_,
121                                                                         'Build.PL' )
122                                                     : 'Build.PL';
123 15     15   254                             };
  15         138  
  15         196  
124                                         
125             use constant BLIB => sub { return @_
126 35 100       3126                                         ? File::Spec->catfile(@_, 'blib')
127                                                     : 'blib';
128 15     15   1841                             };
  15         143  
  15         235  
129              
130 15     15   255 use constant LIB => 'lib';
  15         139  
  15         184  
131             use constant LIB_DIR => sub { return @_
132 13 50       618                                         ? File::Spec->catdir(@_, LIB)
133                                                     : LIB;
134 15     15   253                             };
  15         137  
  15         193  
135 15     15   300 use constant AUTO => 'auto';
  15         137  
  15         264  
136             use constant LIB_AUTO_DIR => sub { return @_
137 0 0       0                                         ? File::Spec->catdir(@_, LIB, AUTO)
138                                                     : File::Spec->catdir(LIB, AUTO)
139 15     15   228                             };
  15         138  
  15         222  
140 15     15   279 use constant ARCH => 'arch';
  15         139  
  15         244  
141             use constant ARCH_DIR => sub { return @_
142 0 0       0                                         ? File::Spec->catdir(@_, ARCH)
143                                                     : ARCH;
144 15     15   313                             };
  15         139  
  15         5460  
145             use constant ARCH_AUTO_DIR => sub { return @_
146 0 0       0                                         ? File::Spec->catdir(@_,ARCH,AUTO)
147                                                     : File::Spec->catdir(ARCH,AUTO)
148 15     15   242                             };
  15         137  
  15         316  
149              
150             use constant BLIB_LIBDIR => sub { return @_
151 0 0       0                                         ? File::Spec->catdir(
152                                                             @_, BLIB->(), LIB )
153                                                     : File::Spec->catdir( BLIB->(), LIB );
154 15     15   291                             };
  15         257  
  15         201  
155              
156             use constant CONFIG_USER_LIB_DIR => sub {
157 13         222                                     require CPANPLUS::Internals::Utils;
158 13         536                                     LIB_DIR->(
159                                                     CPANPLUS::Internals::Utils->_home_dir,
160                                                     DOT_CPANPLUS
161                                                 );
162 15     15   270                                 };
  15         138  
  15         283  
163             use constant CONFIG_USER_FILE => sub {
164 0         0                                     File::Spec->catfile(
165                                                     CONFIG_USER_LIB_DIR->(),
166                                                     split('::', CONFIG_USER),
167                                                 ) . '.pm';
168 15     15   267                                 };
  15         142  
  15         200  
169             use constant CONFIG_SYSTEM_FILE => sub {
170 0         0                                     require CPANPLUS::Internals;
171 0         0                                     require File::Basename;
172 0         0                                     my $dir = File::Basename::dirname(
173                                                     $INC{'CPANPLUS/Internals.pm'}
174                                                 );
175                                             
176             ### XXX use constants
177 0         0                                     File::Spec->catfile(
178                                                     $dir, qw[Config System.pm]
179                                                 );
180 15     15   335                                 };
  15         176  
  15         224  
181                   
182 2         21 use constant README => sub { my $obj = $_[0];
183 2         92                                      my $pkg = $obj->package_name;
184 2         38                                      $pkg .= '-' . $obj->package_version .
185                                                          '.readme';
186 2         27                                      return $pkg;
187 15     15   463                             };
  15         280  
  15         238  
188             use constant OPEN_FILE => sub {
189 72         5078                                     my($file, $mode) = (@_, '');
190 72         1029                                     my $fh;
191 72 50       20367                                     open $fh, "$mode" . $file
192                                                     or error(loc(
193                                                         "Could not open file '%1': %2",
194                                                          $file, $!));
195 72 50       1789                                     return $fh if $fh;
196 0         0                                     return;
197 15     15   362                             };
  15         137  
  15         236  
198                                         
199             use constant STRIP_GZ_SUFFIX
200                                         => sub {
201 60 50       5217                                     my $file = $_[0] or return;
202 60         1411                                     $file =~ s/.gz$//i;
203 60         2070                                     return $file;
204 15     15   273                             };
  15         140  
  15         234  
205                                                     
206 15     15   225 use constant CHECKSUMS => 'CHECKSUMS';
  15         139  
  15         223  
207 15     15   315 use constant PGP_HEADER => '-----BEGIN PGP SIGNED MESSAGE-----';
  15         136  
  15         247  
208 15         188 use constant ENV_CPANPLUS_CONFIG
209 15     15   262                             => 'PERL5_CPANPLUS_CONFIG';
  15         185  
210 15     15   267 use constant DEFAULT_EMAIL => 'cpanplus@example.com';
  15         139  
  15         214  
211             use constant CPANPLUS_UA => sub { ### for the version number ###
212 0         0                                      require CPANPLUS::Internals;
213 0         0                                      "CPANPLUS/$CPANPLUS::Internals::VERSION"
214 15     15   410                                 };
  15         136  
  15         297  
215             use constant TESTERS_URL => sub {
216 0         0                                     "http://testers.cpan.org/show/" .
217                                                 $_[0] .".yaml"
218 15     15   355                                 };
  15         140  
  15         196  
219             use constant TESTERS_DETAILS_URL
220                                         => sub {
221 0         0                                     'http://testers.cpan.org/show/' .
222                                                 $_[0] . '.html';
223 15     15   244                                 };
  15         321  
  15         197  
224              
225             use constant CREATE_FILE_URI
226                                         => sub {
227 42 50       3523                                     my $dir = $_[0] or return;
228 42 50       5209                                     return $dir =~ m|^/|
229                                                     ? 'file:/' . $dir
230                                                     : 'file://' . $dir;
231 15     15   274                             };
  15         140  
  15         230  
232              
233 15         186 use constant DOT_SHELL_DEFAULT_RC
234 15     15   227                             => '.shell-default.rc';
  15         139  
235              
236 15     15   294 use constant PREREQ_IGNORE => 0;
  15         141  
  15         189  
237 15     15   361 use constant PREREQ_INSTALL => 1;
  15         181  
  15         264  
238 15     15   258 use constant PREREQ_ASK => 2;
  15         140  
  15         543  
239 15     15   368 use constant PREREQ_BUILD => 3;
  15         221  
  15         2400  
240 15     15   497 use constant BOOLEANS => [0,1];
  15         154  
  15         435  
241             use constant CALLING_FUNCTION
242 1   50     17                             => sub { my $lvl = $_[0] || 0;
243 1         49                                      return join '::', (caller(2+$lvl))[3]
244 15     15   248                                 };
  15         143  
  15         582  
245 15     15   237 use constant DOT_EXISTS => '.exists';
  15         178  
  15         297  
246 15     15   371 use constant PERL_CORE => 'perl';
  15         141  
  15         268  
247              
248 0 0       0 use constant GET_XS_FILES => sub { my $dir = $_[0] or return;
249 0         0                                      require File::Find;
250 0         0                                      my @files;
251                                                  File::Find::find(
252 0 0       0                                         sub { push @files, $File::Find::name
253                                                             if $File::Find::name =~ /\.xs$/i
254 0         0                                         }, $dir );
255                                                        
256 0         0                                      return @files;
257 15     15   252                                 };
  15         206  
  15         323  
258              
259             use constant INSTALL_LOG_FILE
260 0 0       0                             => sub { my $obj = shift or return;
261 0         0                                      my $name = $obj->name; $name =~ s/::/-/g;
  0         0  
262 0         0                                      $name .= '-'. scalar(time) . '.log';
263 0         0                                      return $name;
264 15     15   332                                 };
  15         208  
  15         226  
265              
266 15     15   243 use constant ON_WIN32 => $^O eq 'MSWin32';
  15         140  
  15         255  
267 15     15   299 use constant ON_NETWARE => $^O eq 'NetWare';
  15         259  
  15         283  
268 15     15   593 use constant ON_CYGWIN => $^O eq 'cygwin';
  15         185  
  15         207  
269 15     15   1310 use constant ON_VMS => $^O eq 'VMS';
  15         140  
  15         814  
270              
271 15         142 use constant ON_OLD_CYGWIN => do { ON_CYGWIN and $] < 5.008
  15         278  
272                                                 ? loc("Your perl version for %1 is too low; ".
273                                                         "Require %2 or higher for this function",
274                                                         $^O, '5.8.0' )
275                                                 : '';
276 15     15   248                                 };
  15         135  
277              
278             use constant QUOTE_PERL_ONE_LINER
279 0 0                                     => sub { my $line = shift or return;
280              
281             ### use double quotes on these systems
282 0                                                return qq["$line"]
283                                                     if ON_WIN32 || ON_NETWARE || ON_VMS;
284              
285             ### single quotes on the rest
286 0                                                return qq['$line'];
287 15     15   292                             };
  15         169  
  15         230  
288              
289             1;              
290              
291             # Local variables:
292             # c-indentation-style: bsd
293             # c-basic-offset: 4
294             # indent-tabs-mode: nil
295             # End:
296             # vim: expandtab shiftwidth=4:
297