diff options
author | Rob Pike <r@golang.org> | 2014-08-25 11:35:55 -0700 |
---|---|---|
committer | Rob Pike <r@golang.org> | 2014-08-25 11:35:55 -0700 |
commit | e4b65ea6a0b2755b284d20e1822ea2db8df9a7e6 (patch) | |
tree | 876ad93f7b668ead54914c2216a584cfe90fb946 /src/cmd/go | |
parent | 5f8ad5f6c1d4bd6537ab86a90d7ccc96259a36be (diff) | |
download | go-e4b65ea6a0b2755b284d20e1822ea2db8df9a7e6.tar.gz |
cmd/go: add GOOS and GOARCH to generate
Fixes test failure in build, probably a good idea anyway.
LGTM=bradfitz
R=golang-codereviews, bradfitz
CC=golang-codereviews
https://codereview.appspot.com/131210043
Diffstat (limited to 'src/cmd/go')
-rw-r--r-- | src/cmd/go/generate.go | 17 | ||||
-rw-r--r-- | src/cmd/go/generate_test.go | 3 |
2 files changed, 19 insertions, 1 deletions
diff --git a/src/cmd/go/generate.go b/src/cmd/go/generate.go index 34b10314d..5859e9eef 100644 --- a/src/cmd/go/generate.go +++ b/src/cmd/go/generate.go @@ -13,6 +13,7 @@ import ( "os" "os/exec" "path/filepath" + "runtime" "strconv" "strings" "unicode" @@ -48,6 +49,10 @@ quoted string appears a single argument to the generator. Go generate sets several variables when it runs the generator: + $GOARCH + The execution architecture (arm, amd64, etc.) + $GOOS + The execution operating system (linux, windows, etc.) $GOFILE The base name of the file. $GOPACKAGE @@ -287,6 +292,10 @@ func (g *Generator) expandEnv(word string) string { envVar := word[i+1 : i+w] var sub string switch envVar { + case "GOARCH": + sub = runtime.GOARCH + case "GOOS": + sub = runtime.GOOS case "GOFILE": sub = g.file case "GOPACKAGE": @@ -332,7 +341,13 @@ func (g *Generator) exec(words []string) { cmd.Stderr = os.Stderr // Run the command in the package directory. cmd.Dir = g.dir - cmd.Env = mergeEnvLists([]string{"GOFILE=" + g.file, "GOPACKAGE=" + g.pkg}, os.Environ()) + env := []string{ + "GOARCH=" + runtime.GOARCH, + "GOOS=" + runtime.GOOS, + "GOFILE=" + g.file, + "GOPACKAGE=" + g.pkg, + } + cmd.Env = mergeEnvLists(env, os.Environ()) err := cmd.Run() if err != nil { g.errorf("running %q: %s", words[0], err) diff --git a/src/cmd/go/generate_test.go b/src/cmd/go/generate_test.go index 6be815763..881a8fe9b 100644 --- a/src/cmd/go/generate_test.go +++ b/src/cmd/go/generate_test.go @@ -20,7 +20,10 @@ var splitTests = []splitTest{ {"x", []string{"x"}}, {" a b\tc ", []string{"a", "b", "c"}}, {` " a " `, []string{" a "}}, + {"$GOARCH", []string{runtime.GOARCH}}, + {"$GOOS", []string{runtime.GOOS}}, {"$GOFILE", []string{"proc.go"}}, + {"$GOPACKAGE", []string{"sys"}}, {"a $XXNOTDEFINEDXX b", []string{"a", "", "b"}}, {"/$XXNOTDEFINED/", []string{"//"}}, {"$GOARCH", []string{runtime.GOARCH}}, |