From: Peter Rabbitson Date: Mon, 17 Dec 2012 08:19:00 +0000 (+0100) Subject: Fixup possible crlf in generated files X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=204f57da09c684851943467878cb12e8bb64aa2b;p=dbsrgits%2FDBIx-Class-Historic.git Fixup possible crlf in generated files --- diff --git a/maint/Makefile.PL.inc/12_authordeps.pl b/maint/Makefile.PL.inc/12_authordeps.pl index 3fd592c..7068fcb 100644 --- a/maint/Makefile.PL.inc/12_authordeps.pl +++ b/maint/Makefile.PL.inc/12_authordeps.pl @@ -94,6 +94,12 @@ END { Meta->write; } + # strip possible crlf from META + if ($^O eq 'MSWin32' or $^O eq 'cygwin') { + local $ENV{PERLIO} = 'unix'; + system( $^X, qw( -MExtUtils::Command -e dos2unix -- META.yml), ); + } + # test that we really took things away (just in case, happened twice somehow) if (! -f 'META.yml') { warn "No META.yml generated?! aborting...\n"; diff --git a/maint/Makefile.PL.inc/53_autogen_pod.pl b/maint/Makefile.PL.inc/53_autogen_pod.pl index 54f1d58..e3592e5 100644 --- a/maint/Makefile.PL.inc/53_autogen_pod.pl +++ b/maint/Makefile.PL.inc/53_autogen_pod.pl @@ -82,6 +82,31 @@ EOP } +# on some OSes generated files may have an incorrect \n - fix it +# so that the xt tests pass on a fresh checkout (also shipping a +# dist with CRLFs is beyond obnoxious) +# +# Ironically EUMM's dos2unix is broken on win32 itself - it does +# not take into account the CRLF layer present on win32 +# do the ENV trick again +if ($^O eq 'MSWin32' or $^O eq 'cygwin') { + + { + local $ENV{PERLIO} = 'unix'; + system( $^X, qw( -MExtUtils::Command -e dos2unix -- ), $pod_dir ); + } + + postamble <<"EOP"; + +test_xt : dbic_fixup_generated_pod + +dbic_fixup_generated_pod : +\t@{[ $mm_proto->oneliner( qq(\$\$ENV{PERLIO}='unix' and system( \$\$^X, qw( -MExtUtils::Command -e dos2unix -- ), q($pod_dir) ) ) ) ]} + +EOP +} + + # copy the contents of $pod_dir over to the workdir # (yes, overwriting is fine, though nothing should reside there) { diff --git a/maint/Makefile.PL.inc/61_inject_dbicadmin_pod.pl b/maint/Makefile.PL.inc/61_inject_dbicadmin_pod.pl index 97db5d6..46cd783 100644 --- a/maint/Makefile.PL.inc/61_inject_dbicadmin_pod.pl +++ b/maint/Makefile.PL.inc/61_inject_dbicadmin_pod.pl @@ -6,15 +6,20 @@ # will not do what one expects, because on unixy systems the # target is symlinked to the original +# FIXME also on win32 EU::Command::cat() adds crlf even if the +# source files do not contain any :( +my $crlf_fixup = ($^O eq 'MSWin32' or $^O eq 'cygwin') + ? "\t@{[ $mm_proto->oneliner( qq(\$\$ENV{PERLIO}='unix' and system( \$\$^X, qw( -MExtUtils::Command -e dos2unix -- ), q(\$(DISTVNAME)/script/dbicadmin) ) ) ) ]}" + : '' +; postamble <<"EOP"; create_distdir : dbic_distdir_dbicadmin_pod_inject dbic_distdir_dbicadmin_pod_inject : - \t\$(RM_F) \$(DISTVNAME)/script/dbicadmin \t@{[ $mm_proto->oneliner('cat', ['-MExtUtils::Command']) ]} script/dbicadmin maint/.Generated_Pod/dbicadmin.pod > \$(DISTVNAME)/script/dbicadmin - +$crlf_fixup EOP # keep the Makefile.PL eval happy