Created
January 20, 2014 02:29
-
-
Save dagolden/8513944 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env perl | |
use v5.10; | |
use strict; | |
use warnings; | |
use autodie qw/:all/; | |
my $as = shift | |
or die "Usage: $0 <perl-version> [install args]"; | |
my @args = @ARGV; | |
# trailing "t" means do threads | |
my @threads = ( $as =~ /t$/ ) ? (qw/-D usethreads/) : (); | |
$as =~ s/^5\.//; | |
my $perl = "5.$as"; | |
$perl =~ s/t$//; # strip trailing "t" if any | |
# to be force installed | |
my @problem_modules = qw( | |
Module::Build | |
); | |
my @to_install = qw( | |
Task::BeLike::DAGOLDEN | |
); | |
my @no_man = qw/-D man1dir=none -D man3dir=none/; | |
unless ( -d "$ENV{HOME}/perl5/perlbrew/perls/$as" ) { | |
# install perl and lock it down | |
system( qw/perlbrew install -j 9 --as/, $as, $perl, @threads, @no_man, @args ); | |
# bootstrap cpanminus | |
system( qw/perlbrew exec --with/, $as, qw/cpan App::cpanminus/ ); | |
# let's avoid any pod tests when we try to install stuff | |
system( qw/perlbrew exec --with/, $as, qw/cpanm TAP::Harness::Restricted/ ); | |
local $ENV{HARNESS_SUBCLASS} = "TAP::Harness::Restricted"; | |
# some things need forcing | |
system( qw/perlbrew exec --with/, $as, qw/cpanm -f/, @problem_modules ); | |
} | |
local $ENV{HARNESS_SUBCLASS} = "TAP::Harness::Restricted"; | |
# now install the rest | |
system( qw/perlbrew exec --with/, $as, qw/cpanm/, @to_install ); | |
# repeat to catch any circularity problems | |
system( qw/perlbrew exec --with/, $as, qw/cpanm/, @to_install ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment