Complain and fail if exec() returns. No issue #
[arvados.git] / sdk / cli / bin / crunch-job
index da168dfcf3b53b2bbd0d69a81163e95b5e06f20e..402c2de60e9960a69d2feede49678bba2145092d 100755 (executable)
@@ -853,37 +853,15 @@ else {
   eval {
     open(my $orig_manifest, '-|', 'arv-get', $collated_output)
         or die "failed to get collated manifest: $!";
-    # Read the original manifest, and strip permission hints from it,
-    # so we can put the result in a Collection.
-    my @stripped_manifest_lines = ();
     my $orig_manifest_text = '';
     while (my $manifest_line = <$orig_manifest>) {
       $orig_manifest_text .= $manifest_line;
-      my @words = split(/ /, $manifest_line, -1);
-      foreach my $ii (0..$#words) {
-        if ($words[$ii] =~ /^[0-9a-f]{32}\+/) {
-          $words[$ii] =~ s/\+A[0-9a-f]{40}@[0-9a-f]{8}\b//;
-        }
-      }
-      push(@stripped_manifest_lines, join(" ", @words));
     }
-    my $stripped_manifest_text = join("", @stripped_manifest_lines);
     my $output = $arv->{'collections'}->{'create'}->execute('collection' => {
-      'uuid' => md5_hex($stripped_manifest_text),
       'manifest_text' => $orig_manifest_text,
     });
-    Log(undef, "output " . $output->{uuid});
-    $Job->update_attributes('output' => $output->{uuid}) if $job_has_uuid;
-    if ($Job->{'output_is_persistent'}) {
-      $arv->{'links'}->{'create'}->execute('link' => {
-        'tail_kind' => 'arvados#user',
-        'tail_uuid' => $User->{'uuid'},
-        'head_kind' => 'arvados#collection',
-        'head_uuid' => $Job->{'output'},
-        'link_class' => 'resources',
-        'name' => 'wants',
-      });
-    }
+    Log(undef, "output " . $output->{portable_data_hash});
+    $Job->update_attributes('output' => $output->{portable_data_hash}) if $job_has_uuid;
   };
   if ($@) {
     Log (undef, "Failed to register output manifest: $@");
@@ -1515,7 +1493,12 @@ for my $dir ($destdir, $task_work) {
 open L, ">", "$destdir.lock" or die "$destdir.lock: $!";
 flock L, LOCK_EX;
 if (readlink ("$destdir.commit") eq $commit && -d $destdir) {
-    exit 0;
+    if (@ARGV) {
+        exec(@ARGV);
+        die "Cannot exec `@ARGV`: $!";
+    } else {
+        exit 0;
+    }
 }
 
 unlink "$destdir.commit";
@@ -1563,6 +1546,7 @@ close L;
 
 if (@ARGV) {
     exec(@ARGV);
+    die "Cannot exec `@ARGV`: $!";
 } else {
     exit 0;
 }