• haya14busa's avatar
    cmd/go: add -json flag to go env · 846f9254
    haya14busa authored
    "go env" prints Go environment information as a shell script format by
    default but it's difficult for some tools (e.g. editor packages) to
    interpret it.
    
    The -json flag prints the environment in JSON format which
    can be easily interpreted by a lot of tools.
    
    $ go env -json
    {
            "CC": "gcc",
            "CGO_CFLAGS": "-g -O2",
            "CGO_CPPFLAGS": "",
            "CGO_CXXFLAGS": "-g -O2",
            "CGO_ENABLED": "1",
            "CGO_FFLAGS": "-g -O2",
            "CGO_LDFLAGS": "-g -O2",
            "CXX": "g++",
            "GCCGO": "gccgo",
            "GOARCH": "amd64",
            "GOBIN": "/home/haya14busa/go/bin",
            "GOEXE": "",
            "GOGCCFLAGS": "-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build498013955=/tmp/go-build -gno-record-gcc-switches",
            "GOHOSTARCH": "amd64",
            "GOHOSTOS": "linux",
            "GOOS": "linux",
            "GOPATH": "/home/haya14busa",
            "GORACE": "",
            "GOROOT": "/home/haya14busa/src/go.googlesource.com/go",
            "GOTOOLDIR": "/home/haya14busa/src/go.googlesource.com/go/pkg/tool/linux_amd64",
            "PKG_CONFIG": "pkg-config"
    }
    
    Also, it supports arguments with -json flag.
    
    $ go env -json GOROOT GOPATH GOBIN
    {
            "GOBIN": "/home/haya14busa/go/bin",
            "GOPATH": "/home/haya14busa",
            "GOROOT": "/home/haya14busa/src/go.googlesource.com/go"
    }
    
    Fixes #12567
    
    Change-Id: I75db3780f14a8ab8c7fa58cc3c9cc488ef7b66a1
    Reviewed-on: https://go-review.googlesource.com/38757Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    846f9254
Name
Last commit
Last update
..
addr2line Loading commit data...
api Loading commit data...
asm Loading commit data...
cgo Loading commit data...
compile Loading commit data...
cover Loading commit data...
dist Loading commit data...
doc Loading commit data...
fix Loading commit data...
go Loading commit data...
gofmt Loading commit data...
internal Loading commit data...
link Loading commit data...
nm Loading commit data...
objdump Loading commit data...
pack Loading commit data...
pprof Loading commit data...
trace Loading commit data...
vendor Loading commit data...
vet Loading commit data...