aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKonstantin Ryabitsev <mricon@kernel.org>2011-12-12 20:06:41 -0500
committerKonstantin Ryabitsev <mricon@kernel.org>2011-12-12 20:06:41 -0500
commitee5f5e08369b3dcdcb7726d043b3f16dad68cc45 (patch)
tree7245a7d27d8fd0eb632562599dc49e27457084b3
parent86b7856ca909c3475497383888875042ca7e50eb (diff)
downloadkup-ee5f5e08369b3dcdcb7726d043b3f16dad68cc45.tar.gz
Make mkdir recursive.
Use File::Path to make mkdir recursive.
-rwxr-xr-xkup-server17
1 files changed, 15 insertions, 2 deletions
diff --git a/kup-server b/kup-server
index 8ff50a1..f7902df 100755
--- a/kup-server
+++ b/kup-server
@@ -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();