From 915ffd4593e68a86f7bc92151ecabfb477df2799 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 21 Mar 2023 23:07:37 +0000 Subject: 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. --- lib/PublicInbox/Spawn.pm | 6 ++++-- lib/PublicInbox/SpawnPP.pm | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/PublicInbox/Spawn.pm b/lib/PublicInbox/Spawn.pm index dc11543a..878843a6 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 5609f74a..d6c863f8 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); -- cgit v1.2.3-24-ge0c7