export PERL_MM_USE_DEFAULT=1 PERL_MM_NONINTERACTIVE=1 PERL_AUTOINSTALL_PREFER_CPAN=1 PERLBREW_CPAN_MIRROR="$TRAVIS_CPAN_MIRROR"
# Fixup CPANM_OPT to behave more like a traditional cpan client
-export PERL_CPANM_OPT="$( echo $PERL_CPANM_OPT | sed 's/--skip-satisfied//' )"
+export PERL_CPANM_OPT="$( echo $PERL_CPANM_OPT | sed 's/--skip-satisfied//' ) --verbose --no-interactive"
if [[ -n "$BREWVER" ]] ; then
run_or_err "Compiling/installing Perl $BREWVER (without testing, may take up to 5 minutes)" \
##### TEMPORARY WORKAROUNDS
- # not sure what's going on here yet
+ # The unicode-in-yaml bug on older cpan clients
+ # FIXME there got to be a saner way to fix this...
perl -M5.008008 -e 1 &> /dev/null || \
- parallel_installdeps_notest multidimensional bareword::filehandles
+ run_or_err "Installing multidimensional and bareword::filehandles via cpanm" \
+ "cpanm multidimensional bareword::filehandles"
# work around Params::Validate not having a Makefile.PL so really old
# toolchains can not figure out what the prereqs are ;(
}
extract_prereqs() {
+ # once --verbose is set, --no-verbose can't disable it
+ # do this by hand
+ ORIG_CPANM_OPT="$PERL_CPANM_OPT"
+ PERL_CPANM_OPT="$( echo $PERL_CPANM_OPT | sed 's/--verbose//' )"
+
# hack-hack-hack
LASTEXIT=0
COMBINED_OUT="$( { stdout="$(cpanm --quiet --scandeps --format tree "$@")" ; } 2>&1; echo "!!!STDERRSTDOUTSEPARATOR!!!$stdout")" \
|| LASTEXIT=$?
+ PERL_CPANM_OPT="$ORIG_CPANM_OPT"
+
OUT=${COMBINED_OUT#*!!!STDERRSTDOUTSEPARATOR!!!}
ERR=$(grep -v " is up to date." <<< "${COMBINED_OUT%!!!STDERRSTDOUTSEPARATOR!!!*}")
# specify a custom buildlog, hence we just collect the verbose output
# and display it in case of failure
run_or_err "Installing (without testing) $MODLIST" \
- "echo $MODLIST | xargs -n 1 -P $NUMTHREADS cpanm --verbose --no-interactive --notest --no-man-pages"
+ "echo $MODLIST | xargs -n 1 -P $NUMTHREADS cpanm --notest --no-man-pages"
}