Fix up the progress reporting so we can see directories being created
authorZygo Blaxell <zblaxell@esightcorp.com>
Thu, 13 May 2010 20:53:35 +0000 (16:53 -0400)
committerZygo Blaxell <zblaxell@esightcorp.com>
Thu, 13 May 2010 20:53:35 +0000 (16:53 -0400)
dm6

diff --git a/dm6 b/dm6
index 874534fac260f177fd174250296d0a872fb16aa3..8b45f507058e652a4093d6c51fe8fb7c57ae0091 100755 (executable)
--- a/dm6
+++ b/dm6
@@ -63,7 +63,7 @@ sub link_files {
                unlink($tmp_to) or warn "unlink: $tmp_to: $!";  # Try, possibly in vain, to clean up
                die "rename: $tmp_to -> $from: $saved_bang";
        }
                unlink($tmp_to) or warn "unlink: $tmp_to: $!";  # Try, possibly in vain, to clean up
                die "rename: $tmp_to -> $from: $saved_bang";
        }
-       print STDERR "\b \b";
+       print STDERR "\b";
 }
 
 my $link_dir = shift @ARGV;
 }
 
 my $link_dir = shift @ARGV;
@@ -81,14 +81,25 @@ sub slash_prefix {
        return ($prefix, $suffix);
 }
 
        return ($prefix, $suffix);
 }
 
+sub mkdir_p {
+       my ($dir) = @_;
+       return if -d $dir;
+       $dir =~ s:/+$::os;
+       my $parent;
+       ($parent = $dir) =~ s:[^/]+$::os;
+       if ($parent ne $dir) {
+               mkdir_p($parent);
+               print STDERR 'm';
+               mkdir($dir) or die "mkdir: $dir: $!";
+       }
+       die "mkdir: $dir: $!" unless -d $dir;
+}
+
 sub prepare_parents {
        my ($link_dir, $file) = @_;
        my ($prefix, $suffix) = slash_prefix($file);
        my $parent = "$link_dir/$prefix";
 sub prepare_parents {
        my ($link_dir, $file) = @_;
        my ($prefix, $suffix) = slash_prefix($file);
        my $parent = "$link_dir/$prefix";
-       print STDERR 'm';
-       mkpath($parent, { verbose => 0 });
-       print STDERR "\b";
-       die "mkpath: $parent: $!" unless -d $parent;
+       mkdir_p($parent);
        return "$parent/$suffix";
 }
 
        return "$parent/$suffix";
 }