split manifest checking out from preflight and improve
[p5sagit/Distar.git] / helpers / check-manifest
diff --git a/helpers/check-manifest b/helpers/check-manifest
new file mode 100755 (executable)
index 0000000..794e8aa
--- /dev/null
@@ -0,0 +1,30 @@
+#!/usr/bin/env perl
+use strict;
+use warnings FATAL => 'all';
+use ExtUtils::Manifest qw(filecheck maniread maniskip manicheck mkmanifest);
+
+{
+  local $ExtUtils::Manifest::Quiet = 1;
+  my $manimiss = ! -e 'MANIFEST';
+  if (-e 'MANIFEST') {
+    my @extra = manicheck;
+    if (@extra) {
+      die "Files in MANIFEST are missing from file system:\n"
+        . join('', map "  $_\n", @extra);
+    }
+
+    my $read = maniread;
+    my $skip = maniskip;
+
+    my @missing = manicheck;
+    my @remove = grep $skip->($_), sort keys %$read;
+
+    exit 0
+      if !(@missing || @remove);
+  }
+}
+
+warn "Updating MANIFEST:\n";
+mkmanifest;
+warn "Go check it and retry.\n";
+exit 1;