summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2014-05-25 16:50:52 -0400
committerPietro Gagliardi <[email protected]>2014-05-25 16:50:52 -0400
commit9d18f04a7c12f1dfe9d698fd17c36c930c9b742a (patch)
treedbe5d443dc73620eb3e01e6a921d8da3d4ab3ef6
parente2063cf94667b7317b90a54521e2f1345f2685d2 (diff)
Corrected the environment in windowsconstgen.go so that we can run it from test.sh. Phew!
-rwxr-xr-xtest.sh10
-rw-r--r--tools/windowsconstgen.go11
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,