]> err.no Git - dpkg/commitdiff
Dpkg::IPC: Add chdir option
authorRaphael Hertzog <hertzog@debian.org>
Sat, 16 Feb 2008 15:18:24 +0000 (16:18 +0100)
committerRaphael Hertzog <hertzog@debian.org>
Sat, 16 Feb 2008 15:18:24 +0000 (16:18 +0100)
* scripts/Dpkg/IPC.pm (fork_and_exec): Add chdir option to
change the current directory of the child process before
calling exec.

scripts/Dpkg/IPC.pm

index ee7c2c15ae1f96f47f543951479c8151dd442bcf..e4889ba64eeaa15e70f1145c2a6729d1781069ea 100644 (file)
@@ -101,6 +101,11 @@ Scalar. If containing a true value, wait_child() will be called before
 returning. The return value will of fork_and_exec() will be a true value,
 but not the pid.
 
+=item chdir
+
+Scalar. The child process will chdir in the indicated directory before
+calling exec.
+
 =back
 
 =cut
@@ -168,6 +173,9 @@ sub fork_and_exec {
     my $pid = fork();
     syserr(_g("fork for %s"), "@prog") unless defined $pid;
     if (not $pid) {
+       if ($opts{"chdir"}) {
+           chdir($opts{"chdir"}) || syserr(_g("chdir to %s"), $opts{"chdir"});
+       }
        # Redirect STDIN if needed
        if ($opts{"from_file"}) {
            open(STDIN, "<", $opts{"from_file"}) ||