My code should support many types of OSs and archs.
Im using a netstat
supporting lib ("github.com/cakturk/go-netstat/netstat"
) which is supported for windows and linux but not for darwin or arm64 arch.
I have 2 files to handle this issue packaged as netstatSafe
. one that is marked with //go:build !darwin && !arm64
that utilizes netstat logics, and another thats marked with //go:build darwin || arm64
, that only imports the “errors” package and has no logic other than returning an error that netstat isnt suported.
However – when running GOOS=windows GOARCH=arm64 go build
– my build fails with:
package SomeService
imports SomeService/myLib1
imports SomeService/myLib2
imports MyInfra/netstatSafe: build constraints exclude all Go files in path/to/netstatSafe
The boolean conditions seem correct so I feel puzzled.
When i created a few files with windows && !arm64
+ linux && !arm64
+ darwin && !arm64
+ arm64
it worked – but this is not what the poet has meant – im sure.