Even more distbuilding checks
Peter Rabbitson [Wed, 20 Feb 2013 09:35:00 +0000 (10:35 +0100)]
Frew's environment (and *only* his environment) keeps producing weirdly
broken dists. Add an extra check for this until we figure out how exactly
his environment is broken.

Extra check tested on cygwin and strawberry for good measure.

maint/Makefile.PL.inc/91_inc_sanity_check.pl [new file with mode: 0644]

diff --git a/maint/Makefile.PL.inc/91_inc_sanity_check.pl b/maint/Makefile.PL.inc/91_inc_sanity_check.pl
new file mode 100644 (file)
index 0000000..80dd107
--- /dev/null
@@ -0,0 +1,29 @@
+my @files_to_check = qw(AutoInstall.pm Can.pm WriteAll.pm Win32.pm);
+
+END {
+  # shit already hit the fan
+  return if $?;
+
+  for my $f (@files_to_check) {
+    if (! -f "inc/Module/Install/$f") {
+      warn "Your inc/ does not contain a critical Module::Install component - \$_. Something went horrifically wrong... please ask the cabal for help\n";
+      unlink 'Makefile';
+      exit 1;
+    }
+  }
+}
+
+my $oneliner = <<"EOO";
+-f qq(\$(DISTVNAME)/inc/Module/Install/\$_) or die "\\nYour \$(DISTVNAME)/inc/ does not contain a critical Module::Install component: \$_. Something went horrifically wrong... please ask the cabal for help\\n\\n" for (qw(@files_to_check))
+EOO
+
+postamble <<"EOP";
+create_distdir : sanity_check_inc
+
+sanity_check_inc :
+\t\$(NOECHO) @{[ $mm_proto->oneliner($oneliner) ]}
+
+EOP
+
+# keep the Makefile.PL eval happy
+1;