chiark / gitweb /
nailing-cargo: Print a better error about missing update mode
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 25 Jul 2020 00:12:07 +0000 (01:12 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 25 Jul 2020 00:13:16 +0000 (01:13 +0100)
If the user forgot generate-lockfile, we would fail with a confusing
ENOENT error from the command script.  Instead, spot this situation.

This also gives us a place to do decide to mkdir -p or something.

Related to #5, but does not fix it completely.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
nailing-cargo

index ae2b04b0c708f35e5eade3630e57568eafda2a68..b17056898edf66ecb2b1d81da7e396895040159e 100755 (executable)
@@ -533,6 +533,16 @@ END {
   }
 }
 
+sub consider_directories () {
+  return unless defined $oot_dir;
+  my $bsubdir = "../$oot_dir/$subdir";
+  return if stat $bsubdir;
+  die "$0: build directory $bsubdir inaccessible\n"
+    unless $!==ENOENT;
+  return if $cargo_lock_update; # will make it
+  die "$0: build directory $bsubdir does not exist, and not in Cargo.lock update mode!\n";
+}
+
 our $cleanup_cargo_lock;
 sub makebackups () {
   foreach my $mf (keys %manifests) {
@@ -799,6 +809,7 @@ consider_oot();
 readorigs();
 calculate();
 addargs();
+consider_directories();
 our @display_cmd = @ARGV;
 oot_massage_cmdline();
 setenvs();