From: Eric Wong Date: Tue, 21 Mar 2023 23:07:37 +0000 (+0000) Subject: spawn: show failing directory for chdir failures X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=915ffd4593e68a86f7bc92151ecabfb477df2799;p=thirdparty%2Fpublic-inbox.git spawn: show failing directory for chdir failures Our use of `git rev-parse --git-dir' depends on our (v)fork+exec wrapper doing chdir, so the error message is required to avoid user confusion. I'm still avoiding `git -C $DIR' for now since ancient versions of git did not support it. --- diff --git a/lib/PublicInbox/Spawn.pm b/lib/PublicInbox/Spawn.pm index dc11543a9..878843a60 100644 --- a/lib/PublicInbox/Spawn.pm +++ b/lib/PublicInbox/Spawn.pm @@ -122,8 +122,10 @@ int pi_fork_exec(SV *redirref, SV *file, SV *cmdref, SV *envref, SV *rlimref, exit_err("setpgid", &cerrnum); for (sig = 1; sig < NSIG; sig++) signal(sig, SIG_DFL); /* ignore errors on signals */ - if (*cd && chdir(cd) < 0) - exit_err("chdir", &cerrnum); + if (*cd && chdir(cd) < 0) { + write(2, "cd ", 3); + exit_err(cd, &cerrnum); + } max_rlim = av_len(rlim); for (i = 0; i < max_rlim; i += 3) { diff --git a/lib/PublicInbox/SpawnPP.pm b/lib/PublicInbox/SpawnPP.pm index 5609f74a8..d6c863f81 100644 --- a/lib/PublicInbox/SpawnPP.pm +++ b/lib/PublicInbox/SpawnPP.pm @@ -37,7 +37,7 @@ sub pi_fork_exec ($$$$$$$) { } $SIG{$_} = 'DEFAULT' for grep(!/\A__/, keys %SIG); if ($cd ne '') { - chdir $cd or die "chdir $cd: $!"; + chdir $cd or die "cd $cd: $!"; } while (@$rlim) { my ($r, $soft, $hard) = splice(@$rlim, 0, 3);