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;
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";
- print STDERR 'm';
- mkpath($parent, { verbose => 0 });
- print STDERR "\b";
- die "mkpath: $parent: $!" unless -d $parent;
+ mkdir_p($parent);
return "$parent/$suffix";
}