>From b2d9f39599f39a783e448423e716ab55da231e9e Mon Sep 17 00:00:00 2001
From: Andy Beverley <[email protected]>
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