]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: update PWD variable for 'go generate'
authorTao Qingyun <qingyunha@gmail.com>
Fri, 5 Mar 2021 04:01:00 +0000 (04:01 +0000)
committerBryan C. Mills <bcmills@google.com>
Fri, 5 Mar 2021 04:30:32 +0000 (04:30 +0000)
Most subprocess invocations in the go command use base.AppendPWD to
append an accurate value of PWD to the command's environment, which can
speed up calls like os.Getwd and also help to provide less-confusing
output from scripts. Update `go generate` to do so.

Fixes #43862

Change-Id: I3b756f1532b2d922f7d74fd86414d5567a0122c0
GitHub-Last-Rev: 3ec8da265a2777d1dcbcea00f107b8f5905f3640
GitHub-Pull-Request: golang/go#43940
Reviewed-on: https://go-review.googlesource.com/c/go/+/287152
Reviewed-by: Bryan C. Mills <bcmills@google.com>
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Trust: Baokun Lee <bk@golangcn.org>

src/cmd/go/internal/generate/generate.go
src/cmd/go/testdata/script/generate.txt

index a48311d51b09b7a2a356e1e567abfcaa1af60b7b..97df229b31568eda506f0ed2252ef917f4b04a16 100644 (file)
@@ -334,6 +334,7 @@ func (g *Generator) setEnv() {
                "GOPACKAGE=" + g.pkg,
                "DOLLAR=" + "$",
        }
+       g.env = base.AppendPWD(g.env, g.dir)
 }
 
 // split breaks the line into words, evaluating quoted
index c3c563e5f4a1d157f34f2b113431b88a71cf4dd9..73f5bbd57a91d35177b5ccaed75e0d1496cebffe 100644 (file)
@@ -26,6 +26,10 @@ stdout 'yes' # flag.go should select yes
 go generate './generate/env_test.go'
 stdout 'main_test'
 
+# Test go generate provides the right "$PWD"
+go generate './generate/env_pwd.go'
+stdout $WORK'[/\\]gopath[/\\]src[/\\]generate'
+
 -- echo.go --
 package main
 
@@ -88,4 +92,8 @@ package p
 -- generate/env_test.go --
 package main_test
 
-//go:generate echo $GOPACKAGE
\ No newline at end of file
+//go:generate echo $GOPACKAGE
+-- generate/env_pwd.go --
+package p
+
+//go:generate echo $PWD