zip: set PWD consistently for commands in subdirectories
Some platforms (notably macOS) use symlinks for /tmp, so if we fail to
set PWD appropriately, any resulting errors may refer to the wrong
directory, making those errors more confusing.
Change-Id: Ibc899d7aca138d9e016171e34e7e4aab4895a4df
Reviewed-on: https://go-review.googlesource.com/c/mod/+/375914
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Auto-Submit: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Bryan Mills <bcmills@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
diff --git a/zip/zip.go b/zip/zip.go
index 949cae2..cdb9f5a 100644
--- a/zip/zip.go
+++ b/zip/zip.go
@@ -641,6 +641,7 @@
cmd.Args = append(cmd.Args, subdir)
}
cmd.Dir = dir
+ cmd.Env = append(os.Environ(), "PWD="+dir)
cmd.Stdout = &stdout
cmd.Stderr = &stderr
if err := cmd.Run(); err != nil {
@@ -679,11 +680,12 @@
stdout := &bytes.Buffer{}
cmd := exec.Command("git", "rev-parse", "--git-dir")
cmd.Dir = dir
+ cmd.Env = append(os.Environ(), "PWD="+dir)
cmd.Stdout = stdout
if err := cmd.Run(); err != nil {
return false
}
- gitDir := strings.TrimSpace(string(stdout.Bytes()))
+ gitDir := strings.TrimSpace(stdout.String())
if !filepath.IsAbs(gitDir) {
gitDir = filepath.Join(dir, gitDir)
}