Corrected the environment in windowsconstgen.go so that we can run it from test.sh. Phew!

This commit is contained in:
Pietro Gagliardi 2014-05-25 16:50:52 -04:00
parent e2063cf946
commit 9d18f04a7c
2 changed files with 13 additions and 8 deletions

10
test.sh
View File

@ -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 "$@"

View File

@ -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,