summaryrefslogtreecommitdiff
path: root/Debian/Dgit.pm
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2019-07-17 03:14:34 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2019-07-17 03:15:55 +0100
commitcdd64eaaa7f13d737b52909c75a208f221488056 (patch)
treebac74ec64d6d73013507cc3a74dc2422c334ae4b /Debian/Dgit.pm
parentc5ca9333fa1bc981c1166f150533d16b34c92fe5 (diff)
Dgit.pm: Provide `ensurepath'
Like `ensuredir' but also a bit like a more controlled `mkdir -p'. We use make_path from File::Path. It dies on failure. No caller yet. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'Debian/Dgit.pm')
-rw-r--r--Debian/Dgit.pm11
1 files changed, 9 insertions, 2 deletions
diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm
index 348f608..2004fe1 100644
--- a/Debian/Dgit.pm
+++ b/Debian/Dgit.pm
@@ -29,7 +29,7 @@ use Config;
use Digest::SHA;
use Data::Dumper;
use IPC::Open2;
-use File::Path;
+use File::Path qw(:DEFAULT make_path);
use File::Basename;
use Dpkg::Control::Hash;
use Debian::Dgit::ExitStatus;
@@ -51,7 +51,8 @@ BEGIN {
server_branch server_ref
stat_exists link_ltarget rename_link_xf
hashfile
- fail failmsg ensuredir must_getcwd executable_on_path
+ fail failmsg ensuredir ensurepath
+ must_getcwd executable_on_path
waitstatusmsg failedcmd_waitstatus
failedcmd_report_cmd failedcmd
runcmd shell_cmd cmdoutput cmdoutput_errok
@@ -309,6 +310,12 @@ sub ensuredir ($) {
confess "mkdir $dir: $!";
}
+sub ensurepath ($$) {
+ my ($firsttocreate, $subdir) = @_; # creates necessary bits of $subidr
+ ensuredir $firsttocreate;
+ make_path "$firsttocreate/$subdir";
+}
+
sub must_getcwd () {
my $d = getcwd();
defined $d or fail f_ "getcwd failed: %s\n", $!;