(travis) Factor out sitelib cleaner, we will call it more than once soon
Peter Rabbitson [Thu, 2 Apr 2015 00:41:11 +0000 (02:41 +0200)]
maint/travis-ci_scripts/20_install.bash
maint/travis-ci_scripts/common.bash

index 7118a0a..02e2041 100755 (executable)
@@ -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
index faf47de..6b9809a 100755 (executable)
@@ -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; }