| line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
|
1
|
|
|
|
|
|
|
package WWW::Module; |
|
2
|
1
|
|
|
1
|
|
20476
|
use strict; |
|
|
1
|
|
|
|
|
3
|
|
|
|
1
|
|
|
|
|
35
|
|
|
3
|
1
|
|
|
1
|
|
5
|
use warnings; |
|
|
1
|
|
|
|
|
1
|
|
|
|
1
|
|
|
|
|
25
|
|
|
4
|
|
|
|
|
|
|
|
|
5
|
1
|
|
|
1
|
|
4
|
use Carp; |
|
|
1
|
|
|
|
|
5
|
|
|
|
1
|
|
|
|
|
62
|
|
|
6
|
1
|
|
|
1
|
|
983
|
use Data::Dumper; |
|
|
1
|
|
|
|
|
9277
|
|
|
|
1
|
|
|
|
|
60
|
|
|
7
|
1
|
|
|
1
|
|
734
|
use File::HomeDir; |
|
|
1
|
|
|
|
|
6002
|
|
|
|
1
|
|
|
|
|
50
|
|
|
8
|
1
|
|
|
1
|
|
7
|
use File::Spec; |
|
|
1
|
|
|
|
|
1
|
|
|
|
1
|
|
|
|
|
16
|
|
|
9
|
1
|
|
|
1
|
|
5534
|
use CPAN; |
|
|
1
|
|
|
|
|
358794
|
|
|
|
1
|
|
|
|
|
698
|
|
|
10
|
|
|
|
|
|
|
|
|
11
|
1
|
|
|
1
|
|
45
|
use vars qw($VERSION); |
|
|
1
|
|
|
|
|
7
|
|
|
|
1
|
|
|
|
|
1362
|
|
|
12
|
|
|
|
|
|
|
$VERSION = '1.00'; |
|
13
|
|
|
|
|
|
|
|
|
14
|
|
|
|
|
|
|
my ($MAKE_LOG,$MAKE_ERR,$REQUIRE_ERR); |
|
15
|
|
|
|
|
|
|
my $CPAN_HOME; |
|
16
|
|
|
|
|
|
|
|
|
17
|
|
|
|
|
|
|
BEGIN |
|
18
|
|
|
|
|
|
|
{ |
|
19
|
|
|
|
|
|
|
sub do_conf{ |
|
20
|
0
|
|
|
0
|
0
|
0
|
my $build_dir = File::Spec->catfile($CPAN_HOME,'build'); |
|
21
|
0
|
|
|
|
|
0
|
my $histfile = File::Spec->catfile($CPAN_HOME,'histfile'); |
|
22
|
0
|
|
|
|
|
0
|
my $keep_source_where = File::Spec->catfile($CPAN_HOME,'sources'); |
|
23
|
0
|
|
|
|
|
0
|
my $conf = { |
|
24
|
|
|
|
|
|
|
'build_cache' => q[10], |
|
25
|
|
|
|
|
|
|
'build_dir' => $build_dir, |
|
26
|
|
|
|
|
|
|
'cache_metadata' => q[1], |
|
27
|
|
|
|
|
|
|
'commandnumber_in_prompt' => q[1], |
|
28
|
|
|
|
|
|
|
'cpan_home' => $CPAN_HOME, |
|
29
|
|
|
|
|
|
|
'ftp' => q[ftp], |
|
30
|
|
|
|
|
|
|
'ftp_passive' => q[1], |
|
31
|
|
|
|
|
|
|
'ftp_proxy' => q[], |
|
32
|
|
|
|
|
|
|
'getcwd' => q[], |
|
33
|
|
|
|
|
|
|
'gpg' => q[], |
|
34
|
|
|
|
|
|
|
'gzip' => q[], |
|
35
|
|
|
|
|
|
|
'histfile' => $histfile, |
|
36
|
|
|
|
|
|
|
'histsize' => q[100], |
|
37
|
|
|
|
|
|
|
'http_proxy' => q[], |
|
38
|
|
|
|
|
|
|
'inactivity_timeout' => q[0], |
|
39
|
|
|
|
|
|
|
'index_expire' => q[1], |
|
40
|
|
|
|
|
|
|
'inhibit_startup_message' => q[1], |
|
41
|
|
|
|
|
|
|
'keep_source_where' => $keep_source_where, |
|
42
|
|
|
|
|
|
|
'lynx' => q[], |
|
43
|
|
|
|
|
|
|
'make' => q[], |
|
44
|
|
|
|
|
|
|
'make_arg' => q[], |
|
45
|
|
|
|
|
|
|
'make_install_arg' => q[], |
|
46
|
|
|
|
|
|
|
'make_install_make_command' => q[], |
|
47
|
|
|
|
|
|
|
'makepl_arg' => q[], |
|
48
|
|
|
|
|
|
|
'mbuild_arg' => q[], |
|
49
|
|
|
|
|
|
|
'mbuild_install_arg' => q[], |
|
50
|
|
|
|
|
|
|
'mbuild_install_build_command' => q[], |
|
51
|
|
|
|
|
|
|
'mbuildpl_arg' => q[], |
|
52
|
|
|
|
|
|
|
'ncftp' => q[], |
|
53
|
|
|
|
|
|
|
'ncftpget' => q[], |
|
54
|
|
|
|
|
|
|
'no_proxy' => q[], |
|
55
|
|
|
|
|
|
|
'pager' => q[], |
|
56
|
|
|
|
|
|
|
'prerequisites_policy' => q[follow], |
|
57
|
|
|
|
|
|
|
'scan_cache' => q[atstart], |
|
58
|
|
|
|
|
|
|
'shell' => q[], |
|
59
|
|
|
|
|
|
|
'tar' => q[], |
|
60
|
|
|
|
|
|
|
'term_is_latin' => q[], |
|
61
|
|
|
|
|
|
|
'term_ornaments' => q[], |
|
62
|
|
|
|
|
|
|
'unzip' => q[], |
|
63
|
|
|
|
|
|
|
'urllist' => [q[ftp://ftp.mirrorservice.org/sites/ftp.funet.fi/pub/languages/perl/CPAN/],q[ftp://mirrors.ibiblio.org/pub/mirrors/CPAN]], |
|
64
|
|
|
|
|
|
|
'wget' => q[], |
|
65
|
|
|
|
|
|
|
}; |
|
66
|
0
|
|
|
|
|
0
|
return $conf; |
|
67
|
|
|
|
|
|
|
} |
|
68
|
|
|
|
|
|
|
|
|
69
|
|
|
|
|
|
|
sub mk_cpan_pm { |
|
70
|
1
|
|
|
1
|
0
|
30
|
my $user_cpan = File::Spec->catfile(File::HomeDir->my_home,'.cpan','CPAN'); |
|
71
|
1
|
|
|
|
|
312
|
$CPAN_HOME = File::Spec->catfile(File::Spec->tmpdir(),"cpan-". $>); |
|
72
|
1
|
50
|
|
|
|
6
|
mk_path($CPAN_HOME) or return 0; |
|
73
|
|
|
|
|
|
|
|
|
74
|
1
|
|
|
|
|
10
|
my $cpanpm = File::Spec->catfile($user_cpan,'MyConfig.pm'); |
|
75
|
1
|
50
|
|
|
|
28
|
unless(-e $cpanpm){ |
|
76
|
0
|
0
|
|
|
|
0
|
mk_path($user_cpan) or return 0; |
|
77
|
0
|
|
|
|
|
0
|
my $conf = do_conf(); |
|
78
|
|
|
|
|
|
|
|
|
79
|
0
|
0
|
|
|
|
0
|
if(open(CPANPM,"> ". $cpanpm)){ |
|
80
|
0
|
|
|
|
|
0
|
print CPANPM Data::Dumper->Dump([$conf],['$CPAN::Config']); |
|
81
|
0
|
|
|
|
|
0
|
print CPANPM "1;"; |
|
82
|
|
|
|
|
|
|
} else { |
|
83
|
0
|
|
|
|
|
0
|
carp("Couldn't write ". $cpanpm. ": ". $!); |
|
84
|
0
|
|
|
|
|
0
|
return 0; |
|
85
|
|
|
|
|
|
|
} |
|
86
|
0
|
0
|
|
|
|
0
|
close(CPANPM) or return 0; |
|
87
|
|
|
|
|
|
|
} |
|
88
|
1
|
|
|
|
|
8
|
return 1; |
|
89
|
|
|
|
|
|
|
} |
|
90
|
|
|
|
|
|
|
|
|
91
|
|
|
|
|
|
|
sub mk_path{ |
|
92
|
1
|
|
|
1
|
0
|
6
|
my $path = shift; |
|
93
|
1
|
50
|
|
|
|
32
|
unless(-e $path){ |
|
94
|
0
|
|
|
|
|
0
|
eval{File::Path::mkpath($path,0,0755)}; |
|
|
0
|
|
|
|
|
0
|
|
|
95
|
0
|
0
|
|
|
|
0
|
if ($@){ |
|
96
|
0
|
|
|
|
|
0
|
carp("Couldn't make path ". $path .": ". $@); |
|
97
|
0
|
|
|
|
|
0
|
return 0; |
|
98
|
|
|
|
|
|
|
} |
|
99
|
|
|
|
|
|
|
} |
|
100
|
1
|
|
|
|
|
6
|
return 1; |
|
101
|
|
|
|
|
|
|
} |
|
102
|
|
|
|
|
|
|
|
|
103
|
1
|
|
|
1
|
|
11
|
mk_cpan_pm(); |
|
104
|
1
|
|
|
|
|
10
|
$MAKE_LOG = File::Spec->catfile($CPAN_HOME, 'make_log'); |
|
105
|
1
|
|
|
|
|
13
|
$MAKE_ERR = File::Spec->catfile($CPAN_HOME, 'make_err'); |
|
106
|
1
|
|
|
|
|
16
|
$REQUIRE_ERR = File::Spec->catfile($CPAN_HOME, 'require_err'); |
|
107
|
1
|
50
|
|
|
|
31
|
if(-e $MAKE_LOG){ |
|
108
|
0
|
0
|
|
|
|
0
|
unlink($MAKE_LOG) or carp("couldn't unlink ". $MAKE_LOG .": ". $!); |
|
109
|
|
|
|
|
|
|
} |
|
110
|
1
|
50
|
|
|
|
27
|
if(-e $MAKE_ERR){ |
|
111
|
0
|
0
|
|
|
|
0
|
unlink($MAKE_ERR) or carp("couldn't unlink ". $MAKE_ERR .": ". $!); |
|
112
|
|
|
|
|
|
|
} |
|
113
|
1
|
50
|
|
|
|
58
|
if(-r $REQUIRE_ERR){ |
|
114
|
0
|
0
|
|
|
|
0
|
unlink($REQUIRE_ERR) or carp("couldn't unlink ". $REQUIRE_ERR .": ". $!); |
|
115
|
|
|
|
|
|
|
} |
|
116
|
|
|
|
|
|
|
# SWITCH THESE OFF FOR CPAN DEBUGGING |
|
117
|
1
|
|
|
|
|
3
|
$CPAN::Be_Silent = 1; |
|
118
|
1
|
|
|
|
|
665
|
$ENV{PERL_MM_USE_DEFAULT}=1; |
|
119
|
|
|
|
|
|
|
} |
|
120
|
|
|
|
|
|
|
|
|
121
|
|
|
|
|
|
|
sub _use |
|
122
|
|
|
|
|
|
|
{ |
|
123
|
0
|
|
|
0
|
|
0
|
my $incname = my $modname = shift; |
|
124
|
0
|
|
|
|
|
0
|
$incname =~ s/::/\//; |
|
125
|
0
|
|
|
|
|
0
|
$incname .= '.pm'; |
|
126
|
|
|
|
|
|
|
|
|
127
|
0
|
|
|
|
|
0
|
my $mod = CPAN::Shell->expand("Module",$modname); |
|
128
|
0
|
0
|
|
|
|
0
|
unless ($mod->uptodate){ |
|
129
|
|
|
|
|
|
|
{ |
|
130
|
0
|
|
|
|
|
0
|
open(SAVED_OUT, ">&STDOUT"); |
|
|
0
|
|
|
|
|
0
|
|
|
131
|
0
|
|
|
|
|
0
|
open(SAVED_ERR, ">&STDERR"); |
|
132
|
0
|
|
|
|
|
0
|
close(STDOUT); |
|
133
|
0
|
|
|
|
|
0
|
close(STDERR); |
|
134
|
|
|
|
|
|
|
|
|
135
|
0
|
|
|
|
|
0
|
open(STDOUT, ">> ". $MAKE_LOG); |
|
136
|
0
|
|
|
|
|
0
|
open(STDERR, ">> ". $MAKE_ERR); |
|
137
|
0
|
|
|
|
|
0
|
$mod->make(); |
|
138
|
0
|
|
|
|
|
0
|
close(STDOUT); |
|
139
|
0
|
|
|
|
|
0
|
close(STDERR); |
|
140
|
|
|
|
|
|
|
|
|
141
|
0
|
|
|
|
|
0
|
open(STDOUT, ">&SAVED_OUT"); |
|
142
|
0
|
|
|
|
|
0
|
open(STDERR, ">&SAVED_ERR"); |
|
143
|
0
|
|
|
|
|
0
|
close(SAVED_OUT); |
|
144
|
0
|
|
|
|
|
0
|
close(SAVED_ERR); |
|
145
|
|
|
|
|
|
|
} |
|
146
|
0
|
|
|
|
|
0
|
my $dist_dir = $mod->distribution()->dir(); |
|
147
|
0
|
|
|
|
|
0
|
unshift @INC, (File::Spec->catfile($dist_dir,'blib','arch')); |
|
148
|
0
|
|
|
|
|
0
|
unshift @INC, (File::Spec->catfile($dist_dir,'blib','lib')); |
|
149
|
0
|
|
|
|
|
0
|
unshift @INC, $dist_dir; |
|
150
|
|
|
|
|
|
|
|
|
151
|
0
|
0
|
|
|
|
0
|
if(exists $INC{$incname}){ |
|
152
|
0
|
|
|
|
|
0
|
carp($modname." already defined: trying to redefine"); |
|
153
|
0
|
|
|
|
|
0
|
delete $INC{$incname}; |
|
154
|
|
|
|
|
|
|
{ |
|
155
|
0
|
|
|
|
|
0
|
open(SAVED_OUT, ">&STDOUT"); |
|
|
0
|
|
|
|
|
0
|
|
|
156
|
0
|
|
|
|
|
0
|
open(SAVED_ERR, ">&STDERR"); |
|
157
|
0
|
|
|
|
|
0
|
close(STDOUT); |
|
158
|
0
|
|
|
|
|
0
|
close(STDERR); |
|
159
|
|
|
|
|
|
|
|
|
160
|
0
|
|
|
|
|
0
|
open(STDOUT, ">> ". $REQUIRE_ERR); |
|
161
|
0
|
|
|
|
|
0
|
open(STDERR, ">&STDOUT"); |
|
162
|
|
|
|
|
|
|
|
|
163
|
0
|
|
|
|
|
0
|
eval("require ". $modname); |
|
164
|
|
|
|
|
|
|
|
|
165
|
0
|
|
|
|
|
0
|
close(STDOUT); |
|
166
|
0
|
|
|
|
|
0
|
close(STDERR); |
|
167
|
|
|
|
|
|
|
|
|
168
|
0
|
|
|
|
|
0
|
open(STDOUT, ">&SAVED_OUT"); |
|
169
|
0
|
|
|
|
|
0
|
open(STDERR, ">&SAVED_ERR"); |
|
170
|
0
|
|
|
|
|
0
|
close(SAVED_OUT); |
|
171
|
0
|
|
|
|
|
0
|
close(SAVED_ERR); |
|
172
|
|
|
|
|
|
|
|
|
173
|
0
|
0
|
|
|
|
0
|
carp($modname ." cannot be redefined: ". $@) if $@; |
|
174
|
|
|
|
|
|
|
} |
|
175
|
|
|
|
|
|
|
} |
|
176
|
|
|
|
|
|
|
} |
|
177
|
|
|
|
|
|
|
} |
|
178
|
|
|
|
|
|
|
|
|
179
|
|
|
|
|
|
|
sub import |
|
180
|
|
|
|
|
|
|
{ |
|
181
|
1
|
|
|
1
|
|
19
|
my ($self,@imports) = @_; |
|
182
|
1
|
|
|
|
|
4
|
$CPAN::Config->{cpan_home} = $CPAN_HOME; |
|
183
|
1
|
|
|
|
|
13
|
$CPAN::Config->{build_dir} = File::Spec->catfile($CPAN_HOME,'build'); |
|
184
|
1
|
|
|
|
|
10
|
$CPAN::Config->{histfile} = File::Spec->catfile($CPAN_HOME,'histfile'); |
|
185
|
1
|
|
|
|
|
9
|
$CPAN::Config->{keep_source_where} = File::Spec->catfile($CPAN_HOME,'sources'); |
|
186
|
1
|
|
|
|
|
3
|
foreach my $module(@imports){ |
|
187
|
0
|
|
|
|
|
0
|
_use($module); |
|
188
|
|
|
|
|
|
|
} |
|
189
|
1
|
|
|
|
|
19
|
return 1; |
|
190
|
|
|
|
|
|
|
} |
|
191
|
|
|
|
|
|
|
|
|
192
|
|
|
|
|
|
|
1; |
|
193
|
|
|
|
|
|
|
__END__ |