>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