]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/Spawn.pm
spawn: move run_die here from PublicInbox::Import
[public-inbox.git] / lib / PublicInbox / Spawn.pm
index cb16fcf6ca2ba3b1da5d7f8ca8446541fc825f75..5e2495d2fca716121060b5a0b79ef97de14d73e2 100644 (file)
@@ -19,7 +19,7 @@ use strict;
 use parent qw(Exporter);
 use Symbol qw(gensym);
 use PublicInbox::ProcessPipe;
-our @EXPORT_OK = qw/which spawn popen_rd nodatacow_dir/;
+our @EXPORT_OK = qw(which spawn popen_rd run_die nodatacow_dir);
 our @RLIMITS = qw(RLIMIT_CPU RLIMIT_CORE RLIMIT_DATA);
 
 my $vfork_spawn = <<'VFORK_SPAWN';
@@ -306,4 +306,11 @@ sub popen_rd {
        $ret;
 }
 
+sub run_die ($;$$) {
+       my ($cmd, $env, $rdr) = @_;
+       my $pid = spawn($cmd, $env, $rdr);
+       waitpid($pid, 0) == $pid or die "@$cmd did not finish";
+       $? == 0 or die "@$cmd failed: \$?=$?\n";
+}
+
 1;