/
install_modules
executable file
·280 lines (261 loc) · 4.93 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
#!/usr/bin/perl
# Copyright 2012, 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;
# 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
# 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
# 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
Template::Toolkit
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
# 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
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";
}