From: Peter Rabbitson Date: Thu, 2 Apr 2015 00:41:11 +0000 (+0200) Subject: (travis) Factor out sitelib cleaner, we will call it more than once soon X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=fb954d9d3d179dbadb87af9184653e1ce5c2b01a;p=dbsrgits%2FDBIx-Class.git (travis) Factor out sitelib cleaner, we will call it more than once soon --- diff --git a/maint/travis-ci_scripts/20_install.bash b/maint/travis-ci_scripts/20_install.bash index 7118a0a..02e2041 100755 --- a/maint/travis-ci_scripts/20_install.bash +++ b/maint/travis-ci_scripts/20_install.bash @@ -44,26 +44,8 @@ if [[ -n "$BREWVER" ]] ; then # no brewver - this means a travis perl, which means we want to clean up # the presently installed libs -# Idea stolen from -# https://github.com/kentfredric/Dist-Zilla-Plugin-Prereqs-MatchInstalled-All/blob/master/maint-travis-ci/sterilize_env.pl -# Only works on 5.12+ (where sitelib was finally properly fixed) -elif [[ "$CLEANTEST" == "true" ]] && [[ "$POISON_ENV" != "true" ]] && perl -M5.012 -e 1 &>/dev/null ; then - - echo_err "$(tstamp) Cleaning precompiled Travis-Perl" - perl -M5.012 -MConfig -MFile::Find -e ' - my $sitedirs = { - map { $Config{$_} => 1 } - grep { $_ =~ /site(lib|arch)exp$/ } - keys %Config - }; - find({ bydepth => 1, no_chdir => 1, follow_fast => 1, wanted => sub { - ! $sitedirs->{$_} and ( -d _ ? rmdir : unlink ) - } }, keys %$sitedirs ) - ' - - echo_err "Post-cleanup contents of sitelib of the pre-compiled Travis-Perl $TRAVIS_PERL_VERSION:" - echo_err "$(tree $(perl -MConfig -e 'print $Config{sitelib_stem}'))" - echo_err +elif [[ "$CLEANTEST" == "true" ]] && [[ "$POISON_ENV" != "true" ]] ; then + purge_sitelib fi # configure CPAN.pm - older versions go into an endless loop diff --git a/maint/travis-ci_scripts/common.bash b/maint/travis-ci_scripts/common.bash index faf47de..6b9809a 100755 --- a/maint/travis-ci_scripts/common.bash +++ b/maint/travis-ci_scripts/common.bash @@ -217,6 +217,31 @@ eval qq{require($mod)} or ( print $@ and exit 1) fi } +# Idea stolen from +# https://github.com/kentfredric/Dist-Zilla-Plugin-Prereqs-MatchInstalled-All/blob/master/maint-travis-ci/sterilize_env.pl +# Only works on 5.12+ (where sitelib was finally properly fixed) +purge_sitelib() { + + if perl -M5.012 -e1 &>/dev/null ; then + + echo_err "$(tstamp) Cleaning up Perl installation" + perl -M5.012 -MConfig -MFile::Find -e ' + my $sitedirs = { + map { $Config{$_} => 1 } + grep { $_ =~ /site(lib|arch)exp$/ } + keys %Config + }; + find({ bydepth => 1, no_chdir => 1, follow_fast => 1, wanted => sub { + ! $sitedirs->{$_} and ( -d _ ? rmdir : unlink ) + } }, keys %$sitedirs ) + ' + echo_err "Post-cleanup contents of sitelib:" + echo_err "$(tree $(perl -MConfig -e 'print $Config{sitelib_stem}'))" + echo_err + fi +} + + CPAN_is_sane() { perl -MCPAN\ 1.94_56 -e 1 &>/dev/null ; } CPAN_supports_BUILDPL() { perl -MCPAN\ 1.9205 -e1 &>/dev/null; }