aboutsummaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'main.go')
-rw-r--r--main.go27
1 files changed, 20 insertions, 7 deletions
diff --git a/main.go b/main.go
index 8096ae5..8ce0254 100644
--- a/main.go
+++ b/main.go
@@ -124,6 +124,8 @@ See also: go build, go install, go clean.
platforms := plBuilder.Build()
+ environ := parseEnvironment(os.Environ())
+
var (
parallelJobs = runtime.NumCPU()
sem = semaphore.NewWeighted(int64(parallelJobs))
@@ -143,7 +145,7 @@ See also: go build, go install, go clean.
go func(platform Platform, pkg string) {
defer sem.Release(1)
- err := build(ctx, platform, pkg)
+ err := build(ctx, environ, platform, pkg)
if err != nil {
errored = true
@@ -162,20 +164,21 @@ See also: go build, go install, go clean.
}
}
-func build(ctx context.Context, platform Platform, pkg string) error {
+func build(ctx context.Context, environ kvs, platform Platform, pkg string) error {
name := fmt.Sprintf("%s-%s-%s", filepath.Base(pkg), platform.OS, platform.Arch)
if platform.OS == OS_WINDOWS {
name += ".exe"
}
- env := kvs{
- "GOOS": string(platform.OS),
- "GOARCH": string(platform.Arch),
- "GOROOT": os.Getenv("GOROOT"),
- "GOPATH": os.Getenv("GOPATH"),
+ env := kvs{}
+ for key, val := range environ {
+ env[key] = val
}
+ env["GOOS"] = string(platform.OS)
+ env["GOARCH"] = string(platform.Arch)
+
if cgo {
env["CGO_ENABLED"] = "1"
} else {
@@ -244,3 +247,13 @@ func parsePlatforms(plBuilder *PlatformBuilder, fields []string) *PlatformBuilde
return plBuilder
}
+
+func parseEnvironment(environ []string) kvs {
+ env := kvs{}
+ for _, s := range environ {
+ split := strings.SplitN(s, "=", 2)
+ env[split[0]] = split[1]
+ }
+
+ return env
+}