about summary refs log tree commit homepage
path: root/lib/PublicInbox
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2023-03-21 23:07:37 +0000
committerEric Wong <e@80x24.org>2023-03-25 09:37:57 +0000
commit915ffd4593e68a86f7bc92151ecabfb477df2799 (patch)
tree67c6ac735bdba96fca5253d3c542b416d5a48b09 /lib/PublicInbox
parent2dce8067324f0e1ae214c08b59a9947bd6f78b81 (diff)
downloadpublic-inbox-915ffd4593e68a86f7bc92151ecabfb477df2799.tar.gz
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.
Diffstat (limited to 'lib/PublicInbox')
-rw-r--r--lib/PublicInbox/Spawn.pm6
-rw-r--r--lib/PublicInbox/SpawnPP.pm2
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);