chiark / gitweb /
dgit: Check that the build-products-dir is accessible
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 5 Jan 2019 21:17:30 +0000 (21:17 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 5 Jan 2019 23:20:10 +0000 (23:20 +0000)
In fetch/clone, and build.  Others are less likely to be an irritating
problem.

Closes: #913648.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
dgit

diff --git a/dgit b/dgit
index b25d344f46a496516735dd9cb088cd76008c7341..1090984aece5bd9bb2053af8e79f523ac2ccee5c 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -2197,6 +2197,12 @@ sub check_for_vendor_patches () {
                          __ "(nominal) distro being accessed");
 }
 
                          __ "(nominal) distro being accessed");
 }
 
+sub check_bpd_exists () {
+    stat $buildproductsdir
+       or fail f_ "build-products-dir %s is not accessible: %s\n",
+       $buildproductsdir, $!;
+}
+
 sub generate_commits_from_dsc () {
     # See big comment in fetch_from_archive, below.
     # See also README.dsc-import.
 sub generate_commits_from_dsc () {
     # See big comment in fetch_from_archive, below.
     # See also README.dsc-import.
@@ -3062,6 +3068,7 @@ END
 }
 
 sub fetch_from_archive () {
 }
 
 sub fetch_from_archive () {
+    check_bpd_exists();
     ensure_setup_existing_tree();
 
     # Ensures that lrref() is what is actually in the archive, one way
     ensure_setup_existing_tree();
 
     # Ensures that lrref() is what is actually in the archive, one way
@@ -3760,6 +3767,7 @@ sub clone ($) {
 
     mkdir $dstdir or fail f_ "create \`%s': %s", $dstdir, $!;
     changedir $dstdir;
 
     mkdir $dstdir or fail f_ "create \`%s': %s", $dstdir, $!;
     changedir $dstdir;
+    check_bpd_exists();
 
     canonicalise_suite();
     my $hasgit = check_for_git();
 
     canonicalise_suite();
     my $hasgit = check_for_git();
@@ -6305,6 +6313,7 @@ sub build_prep_early () {
 sub build_prep ($) {
     my ($wantsrc) = @_;
     build_prep_early();
 sub build_prep ($) {
     my ($wantsrc) = @_;
     build_prep_early();
+    check_bpd_exists();
     if (!building_source_in_playtree() || ($wantsrc & WANTSRC_BUILDER)) {
        # Clean the tree because we're going to use the contents of
        # $maindir.  (We trying to include dirty changes in the source
     if (!building_source_in_playtree() || ($wantsrc & WANTSRC_BUILDER)) {
        # Clean the tree because we're going to use the contents of
        # $maindir.  (We trying to include dirty changes in the source