diff options
author | Konstantin Ryabitsev <mricon@kernel.org> | 2011-12-12 20:06:41 -0500 |
---|---|---|
committer | Konstantin Ryabitsev <mricon@kernel.org> | 2011-12-12 20:06:41 -0500 |
commit | ee5f5e08369b3dcdcb7726d043b3f16dad68cc45 (patch) | |
tree | 7245a7d27d8fd0eb632562599dc49e27457084b3 | |
parent | 86b7856ca909c3475497383888875042ca7e50eb (diff) | |
download | kup-ee5f5e08369b3dcdcb7726d043b3f16dad68cc45.tar.gz |
Make mkdir recursive.
Use File::Path to make mkdir recursive.
-rwxr-xr-x | kup-server | 17 |
1 files changed, 15 insertions, 2 deletions
@@ -57,6 +57,7 @@ use IPC::Open2 qw(open2); use Config::Simple; use File::Temp qw(tempdir); +use File::Path qw(make_path); use BSD::Resource; use Fcntl qw(:DEFAULT :flock :mode); use POSIX; @@ -881,8 +882,20 @@ sub do_mkdir(@) } } - if (!mkdir($data_path.$file, 0777)) { - fatal("Failed to MKDIR"); + make_path($data_path.$file, { + mode => 0777, + error => \my $err, + }); + + if (@$err) { + for my $diag (@$err) { + my ($file, $message) = %$diag; + if ($file eq '') { + fatal("General error: $message"); + } else { + fatal("Problem creating $file: $message"); + } + } } unlock_tree(); |