This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Bail out if it looks scary.
authorAbigail <abigail@abigail.be>
Mon, 19 Mar 2012 13:40:02 +0000 (14:40 +0100)
committerAbigail <abigail@abigail.be>
Mon, 19 Mar 2012 13:40:02 +0000 (14:40 +0100)
Porting/sync-with-cpan hasn't automated all situations yet. In particular,
it assumes the FILE entry has just one element, and that element is a
directory. It also does not know what to do with MAP. If we determine
this situation, we terminate the program before making any changes.
Although there's the --force option for the braves.

Porting/sync-with-cpan

index 139a5d9..aee808b 100755 (executable)
@@ -62,8 +62,6 @@ use autodie;
 
 require "Porting/Maintainers.pl";
 
-chdir "cpan";
-
 my %IGNORABLE    = map {$_ => 1} @IGNORABLE;
 
 my $package      = "02packages.details.txt";
@@ -72,7 +70,8 @@ my $package_file = "/tmp/$package";
 
 
 GetOptions ('tarball=s'  =>  \my $tarball,
-            'version=s'  =>  \my $version)
+            'version=s'  =>  \my $version,
+             force       =>  \my $force,)
         or  die "Failed to parse arguments";
 
 die "Usage: $0 module [args] [cpan package]" unless @ARGV == 1 || @ARGV == 2;
@@ -83,6 +82,20 @@ my  $cpan_mod = @ARGV ? shift : $module;
 
 my  $info         = $Modules {$module} or die "Cannot find module $module";
 my  $distribution = $$info {DISTRIBUTION};
+
+my @files         = glob $$info {FILES};
+if (@files != 1 || !-d $files [0] || $$info {MAP}) {
+    say "This looks like a setup $0 cannot handle (yet)";
+    unless ($force) {
+        say "Will not continue without a --force option";
+        exit 1;
+    }
+    say "--force is in effect, so we'll soldier on. Wish me luck!";
+}
+
+
+chdir "cpan";
+
 my  $pkg_dir      = $$info {FILES};
     $pkg_dir      =~ s!.*/!!;