/
install_modules
executable file
·422 lines (402 loc) · 7.29 KB
/
install_modules
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
#!/usr/bin/perl
# Copyright 2012-2013, Paul Johnson (paul@pjcj.net)
# This software is free. It is licensed under the same terms as Perl itself.
# The latest version of this software should be available from my homepage:
# http://www.pjcj.net
use strict;
use warnings;
my $modules = <<EOM;
# Stuff for Devel::Cover
# Devel::Cover
.
Parallel::Iterator
Test::Pod::Coverage
PPI::HTML
# My stuff
Gedcom
Shell::Source
# Stuff with interest for Devel::Cover
NetAddr::IP
# There's going to be repetition down here
# Dual-lived core modules
Archive::Extract
Archive::Tar
Attribute::Handlers
autodie
AutoLoader
autouse
base
B::Debug
bignum
B::Lint
Carp
CGI
Compress::Raw::Bzip2
Compress::Raw::Zlib
Config::Perl::V
constant
CPAN
CPAN::Meta
CPAN::Meta::Requirements
CPAN::Meta::YAML
CPANPLUS
CPANPLUS::Dist::Build
Data::Dumper
DB_File
Devel::PPPort
Devel::SelfStubber
Digest
Digest::MD5
Digest::SHA
Dumpvalue
Encode
encoding::warnings
Env
Exporter
ExtUtils::CBuilder
ExtUtils::Command
ExtUtils::Constant
ExtUtils::Install
ExtUtils::MakeMaker
ExtUtils::Manifest
ExtUtils::ParseXS
File::CheckTree
File::Fetch
File::Path
File::Temp
Filter::Simple
Filter::Util::Call
Getopt::Long
HTTP::Tiny
I18N::Collate
I18N::LangTags
if
IO
IO-Compress
IO::Zlib
IPC::Cmd
IPC::SysV
JSON::PP
lib
libnet
Locale-Codes
Locale::Maketext
Locale::Maketext::Simple
Log::Message
Log::Message::Simple
Math::BigInt
Math::BigInt::FastCalc
Math::BigRat
Math::Complex
Memoize
MIME::Base64
Module::Build
Module::CoreList
Module::Load
Module::Load::Conditional
Module::Loaded
Module::Metadata
Module::Pluggable
Net::Ping
NEXT
Object::Accessor
Package::Constants
Params::Check
parent
Parse::CPAN::Meta
PathTools
perlfaq
PerlIO::via::QuotedPrint
Perl::OSType
Pod::Checker
Pod::Escapes
Pod::LaTeX
podlators
Pod::Parser
Pod::Perldoc
Pod::Simple
Pod::Usage
Safe
Scalar-List-Utils
Search::Dict
SelfLoader
Socket
Storable
Sys::Syslog
Term::ANSIColor
Term::Cap
Term::Complete
Term::ReadLine
Term::UI
Test
Test::Harness
Test::Simple
Text::Abbrev
Text::Balanced
Text::ParseWords
Text::Soundex
Text-Tabs+Wrap
Thread::Queue
threads
Thread::Semaphore
threads::shared
Tie::File
Tie::RefHash
Time::HiRes
Time::Local
Time::Piece
Unicode::Collate
Unicode::Normalize
version
Win32
Win32API::File
XSLoader
# Modules with many dependencies
Task::Kensho
Task::Plack
Task::Catalyst
Task::Dancer
Mojolicious
Task::Moose
Task::Dist::Zilla
Task::CPAN::SmokeBox
Task::Perl::Critic
Task::Toolchain::Test
Task::Template::Benchmark
MojoMojo
Jifty
Bot::BasicBot
Dist::Zilla
# Modules with many dependents
Exporter
Text::Tabs
Test::Harness
Pod::Escapes
Pod::Simple
IO
Getopt::Long
Pod::Parser
ExtUtils::MakeMaker
Test::Simple
ExtUtils::Manifest
constant
Test
Data::Dumper
File::Temp
ExtUtils::Install
Text::ParseWords
ExtUtils::CBuilder
ExtUtils::ParseXS
Module::Build
File::Path
XSLoader
MIME::Base64
Digest
Digest::MD5
Sub::Uplevel
URI
Test::Exception
HTML::Tagset
HTML::Parser
Compress::Raw::Zlib
Compress::Raw::Bzip2
Storable
base
List::MoreUtils
Params::Util
Task::Weaken
Sub::Install
Data::OptList
Sub::Exporter
Test::Tester
Test::NoWarnings
Attribute::Handlers
Class::Accessor
Algorithm::C3
Class::C3
Sub::Name
MRO::Compat
Time::HiRes
Params::Validate
Try::Tiny
Scope::Guard
Package::Stash
version
Tree::DAG_Node
Test::Warn
Devel::GlobalDestruction
Class::MOP
Moose
Class::Data::Inheritable
Test::Deep
Carp::Clan
Module::Pluggable
Variable::Magic
B::Hooks::EndOfScope
Sub::Identify
namespace::clean
Time::Local
DBI
Text::Balanced
Class::Inspector
Test::Pod
Encode
Path::Class
Digest::SHA1
FCGI
CGI
MooseX::Types
XML::NamespaceSupport
XML::SAX
Class::Singleton
Clone
DateTime::TimeZone
DateTime::Locale
YAML
DateTime
namespace::autoclean
IO::String
Algorithm::Diff
File::Slurp
Devel::StackTrace
# Modules which should not fail
IO
List::MoreUtils
Test::Harness
ExtUtils::MakeMaker
File::Path
XML::Parser
Test::Simple
HTML::Tree
Storable
Net::IP
DB_File
XML::LibXML
Time::HiRes
Exporter
Pod::Escapes
ExtUtils::ParseXS
Module::Build
Pod::Parser
Data::Dumper
ExtUtils::Install
IO::Tty
XML::SAX
Class::ErrorHandler
URI
HTML::Template
Compress::Raw::Zlib
Net::DNS
Test::Pod::Coverage
XSLoader
version
URI::Fetch
Pod::Simple
constant
Test
File::Temp
Cache::Cache
Feed::Find
HTML::Tagset
ExtUtils::PkgConfig
Devel::GlobalDestruction
PadWalker
Sub::Name
Encode
Test::Base
Class::DBI::Plugin::Type
Sub::Identify
Sub::Uplevel
Params::Validate
POE
Class::Singleton
Proc::ProcessTable
Compress::Raw::Bzip2
Class::MOP
HTTP::Server::Simple
Sub::Exporter
Fuse
File::HomeDir
Bot::BasicBot
# URI::Find::Simple
base
# GD
WWW::Mechanize
Test::Most
Sys::Syslog
File::Slurp
Tree::DAG_Node
FCGI
Params::Util
Devel::Peek
DateTime::Format::Mail
Spiffy
HTML::TableExtract
DBD::SQLite
Class::Accessor::Chained
DBIx::ContextualFetch
Test::Tester
Variable::Magic
AppConfig
Class::Accessor
Want
XML::Simple
IO::All
Number::Format
Term::ReadKey
DBI
Test::Exception
Data::DPath
Config::INI::Serializer
Class::MethodMaker
PDF::FDF::Simple
TAP::DOM
# Web stuff
Authen::Passphrase::BlowfishCrypt
Carp::Always::Color
App::cpanoutdated
Dancer
Dancer::Logger::Log4perl
Dancer::Plugin::Auth::Twitter
Dancer::Plugin::Database
Dancer::Plugin::DBIC
Data::Printer
DBD::SQLite
DBIx::Class::Schema::Loader
DBIx::Class::TimeStamp
DBIx::Log4perl
Exporter::Lite
Log::Log4perl
JSON
Module::Refresh
Moose
MooseX::Declare
MooseX::StrictConstructor
MooseX::Types::DateTime::MoreCoercions
Plack::Middleware::Debug
Plack::Middleware::Debug::Dancer::Version
Plack::Middleware::ReverseProxy
Plack::Middleware::Debug::Dancer::TemplateVariables
SQL::Translator
Starman
Template
Test::More
YAML
# Maths stuff
Math::ODE
Math::MatrixReal
# Other stuff
Image::PNG
Games::Bingo
Method::Signatures
Data::Random
Debuggit
EOM
my @opts = @ARGV;
my @modules = grep /\S/, grep !/^ +#/, split /\n/, $modules;
s/^ +//, s/ +$// for @modules;
my %m; @modules = grep !$m{$_}++, @modules;
for my $mod (sort @modules)
{
system "cpanm @opts $mod";
}