Fix check for global_lock_dir
authorHeiko Schlittermann (HS12-RIPE) <hs@schlittermann.de>
Sun, 6 Nov 2016 22:32:32 +0000 (23:32 +0100)
committerHeiko Schlittermann (HS12-RIPE) <hs@schlittermann.de>
Sun, 6 Nov 2016 22:33:59 +0000 (23:33 +0100)
run_branches
run_build

index 7506a52ec5a6b9762b9aad3ed1d4a5cb44934288..429b02e09c9dda5140a71e4ef83cdb03b448934a 100755 (executable)
@@ -159,15 +159,12 @@ elsif ($EximBuild::conf{branches_to_build} =~
 
 @branches = apply_throttle(@branches);
 
-my $global_lock_dir =
-    $EximBuild::conf{global_lock_dir}
-  ||$EximBuild::conf{build_root}
-  ||'';
+my $global_lock_dir = $EximBuild::conf{global_lock_dir}
+  // $EximBuild::conf{build_root}
+  // die "$0: need global_lock_dir\n";
 
-unless ($global_lock_dir && -d $global_lock_dir)
-{
-    die "no global lock directory: $global_lock_dir";
-}
+die "$0: need r/w permissions for directory '$global_lock_dir'\n"
+    if not -d -w $global_lock_dir;
 
 # acquire the lock
 
index 77c6de0241fb81d5898153fe3a13493405d91f80..fe3ea9294d4af1579228297f9c3e9b44bf74b369 100755 (executable)
--- a/run_build
+++ b/run_build
@@ -173,14 +173,22 @@ my (
     $aux_path,$trigger_exclude,$trigger_include,$secret,
     $keep_errs,$force_every, $make, $optional_steps,
     $use_vpath,$tar_log_cmd, $using_msvc, $extra_config,
-    $make_jobs, $core_file_glob
+    $make_jobs, $core_file_glob, $global_lock_dir
   )
   =@EximBuild::conf{
     qw(build_root target animal print_success aux_path trigger_exclude
       trigger_include secret keep_error_builds force_every make optional_steps
-      use_vpath tar_log_cmd using_msvc extra_config make_jobs core_file_glob)
+      use_vpath tar_log_cmd using_msvc extra_config make_jobs core_file_glob global_lock_dir)
   };
 
+# This should be done more generally, for all the scripts
+# including the $buildconf. For now this is duplicated
+# in a similiar war in run_branches.
+$global_lock_dir //= $buildroot // die "$0: need global_lock_dir\n";
+
+die "$0: need read/write permissions on '$global_lock_dir': $!\n"
+    if not -r -w $global_lock_dir;
+
 #default is no parallel build
 $make_jobs ||= 1;