From c7dd6686b15c2279d94d99c187b4a41d7bb437b2 Mon Sep 17 00:00:00 2001 From: Chris Koch Date: Mon, 12 Feb 2024 03:41:47 +0000 Subject: [PATCH] Add golang Apply func Signed-off-by: Chris Koch --- src/pkg/golang/build.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/pkg/golang/build.go b/src/pkg/golang/build.go index df9da8e8..35bed508 100644 --- a/src/pkg/golang/build.go +++ b/src/pkg/golang/build.go @@ -116,7 +116,7 @@ func WithGO111MODULE(go111module string) Opt { // Default is the default build environment comprised of the default GOPATH, // GOROOT, GOOS, GOARCH, and CGO_ENABLED values. -func Default(opt ...Opt) *Environ { +func Default(opts ...Opt) *Environ { env := &Environ{ Context: build.Default, GO111MODULE: os.Getenv("GO111MODULE"), @@ -126,12 +126,19 @@ func Default(opt ...Opt) *Environ { if env.GO111MODULE != "off" { env.Mod = ModReadonly } - for _, o := range opt { - o(env) - } + env.Apply(opts...) return env } +// Apply applies additional opts to the environment. +func (c *Environ) Apply(opts ...Opt) { + for _, opt := range opts { + if opt != nil { + opt(c) + } + } +} + // Lookup looks up packages by patterns relative to dir, using the Go environment from c. func (c *Environ) Lookup(mode packages.LoadMode, dir string, patterns ...string) ([]*packages.Package, error) { cfg := &packages.Config{