From 9d18f04a7c12f1dfe9d698fd17c36c930c9b742a Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 25 May 2014 16:50:52 -0400 Subject: [PATCH] Corrected the environment in windowsconstgen.go so that we can run it from test.sh. Phew! --- test.sh | 10 +++------- tools/windowsconstgen.go | 11 ++++++++++- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/test.sh b/test.sh index 271f1fc..84b913f 100755 --- a/test.sh +++ b/test.sh @@ -4,13 +4,9 @@ if [ ! -f tools/windowsconstgen.go ]; then fi set -e if [ x$GOOS = xwindows ]; then - # have to build windowsconstgen as the host, otherwise weird things happen - wcg=`mktemp /tmp/windowsconstgenXXXXXXXXXXXX` - GOOS= GOARCH= go build -o $wcg tools/windowsconstgen.go - # but we can run it regardless of $GOOS/$GOARCH - $wcg . 386 "$@" - $wcg . amd64 "$@" - rm $wcg + # have to invoke go run with the host $GOOS/$GOARCH + GOOS= GOARCH= go run tools/windowsconstgen.go . 386 "$@" + GOOS= GOARCH= go run tools/windowsconstgen.go . amd64 "$@" fi cd test go build "$@" diff --git a/tools/windowsconstgen.go b/tools/windowsconstgen.go index 448b549..0617eb1 100644 --- a/tools/windowsconstgen.go +++ b/tools/windowsconstgen.go @@ -182,7 +182,16 @@ func main() { defer f.Close() cmd.Stdout = f cmd.Stderr = os.Stderr - cmd.Env = append(cmd.Env, os.Environ()...) // otherwise $PATH doesn't get carried over and things mysteriously fail + // we need to preserve the environment EXCEPT FOR the variables we're overriding + // thanks to raggi and smw in irc.freenode.net/#go-nuts + for _, ev := range os.Environ() { + if strings.HasPrefix(ev, "GOOS=") || + strings.HasPrefix(ev, "GOARCH=") || + strings.HasPrefix(ev, "CGO_ENABLED=") { + continue + } + cmd.Env = append(cmd.Env, ev) + } cmd.Env = append(cmd.Env, "GOOS=windows", "GOARCH=" + targetarch,