>From b2d9f39599f39a783e448423e716ab55da231e9e Mon Sep 17 00:00:00 2001
From: Andy Beverley <a...@andybev.com>
Date: Sat, 27 Dec 2014 21:36:53 +0000
Subject: [PATCH 3/6] Check existing new directory name before attempting a
 rename to it

---
 lib/DhMakePerl/Command/make.pm |   11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/lib/DhMakePerl/Command/make.pm b/lib/DhMakePerl/Command/make.pm
index 4761ae7..c3c0214 100644
--- a/lib/DhMakePerl/Command/make.pm
+++ b/lib/DhMakePerl/Command/make.pm
@@ -349,12 +349,19 @@ sub setup_dir {
         $new_maindir = $orig_pwd . "/" . $dist->base_id;
 
         # rename existing directory
+        my $new_inc;
+        my $rename_to = "$new_maindir.$$";
+        while (-d $rename_to)
+        {
+            $new_inc++;
+            $rename_to = "$new_maindir.$$-$new_inc";
+        }
         if ( -d $new_maindir
-            && rename $new_maindir, "$new_maindir.$$" )
+            && rename $new_maindir, $rename_to)
         {
             print '=' x 70, "\n";
             print
-                "Unpacked tarball already existed, directory renamed to $new_maindir.$$\n";
+                "Unpacked tarball already existed, directory renamed to $rename_to\n";
             print '=' x 70, "\n";
         }
         system( "mv", $self->main_dir, "$new_maindir" ) == 0
-- 
1.7.10.4

Reply via email to