Documentation ¶
Overview ¶
Package cfg holds configuration shared by multiple parts of the go command.
Index ¶
- Variables
- func BuildXWriter(ctx context.Context) (io.Writer, bool)
- func CanGetenv(key string) bool
- func EnvFile() (string, bool, error)
- func EnvOrAndChanged(name, def string) (v string, changed bool)
- func GetArchEnv() (key, val string, changed bool)
- func Getenv(key string) string
- func LookPath(file string) (path string, err error)
- func SetGOROOT(goroot string, isTestGo bool)
- func ToolExeSuffix() string
- func WithBuildXWriter(ctx context.Context, xLog io.Writer) context.Context
- type EnvVar
Constants ¶
This section is empty.
Variables ¶
var ( Goos = envOr("GOOS", build.Default.GOOS) Goarch = envOr("GOARCH", build.Default.GOARCH) ExeSuffix = exeSuffix() // ModulesEnabled specifies whether the go command is running // in module-aware mode (as opposed to GOPATH mode). // It is equal to modload.Enabled, but not all packages can import modload. ModulesEnabled bool )
Global build parameters (used during package load)
var ( BuildA bool // -a flag BuildBuildmode string // -buildmode flag BuildBuildvcs = "auto" // -buildvcs flag: "true", "false", or "auto" BuildContext = defaultContext() BuildMod string // -mod flag BuildModExplicit bool // whether -mod was set explicitly BuildModReason string // reason -mod was set, if set by default BuildMSan bool // -msan flag BuildASan bool // -asan flag BuildCover bool // -cover flag BuildCoverMode string // -covermode flag BuildCoverPkg []string // -coverpkg flag BuildN bool // -n flag BuildO string // -o flag BuildP = runtime.GOMAXPROCS(0) // -p flag BuildPGO string // -pgo flag BuildPkgdir string // -pkgdir flag BuildRace bool // -race flag BuildToolexec []string // -toolexec flag BuildToolchainName string BuildTrimpath bool // -trimpath flag BuildV bool // -v flag BuildWork bool // -work flag BuildX bool // -x flag ModCacheRW bool // -modcacherw flag ModFile string // -modfile flag CmdName string // "build", "install", "list", "mod tidy", etc. DebugActiongraph string // -debug-actiongraph flag (undocumented, unstable) DebugTrace string // -debug-trace flag DebugRuntimeTrace string // -debug-runtime-trace flag (undocumented, unstable) // GoPathError is set when GOPATH is not set. it contains an // explanation why GOPATH is unset. GoPathError string GOPATHChanged bool CGOChanged bool )
These are general "build flags" used by build and other commands.
var ( // RawGOEXPERIMENT is the GOEXPERIMENT value set by the user. RawGOEXPERIMENT = envOr("GOEXPERIMENT", buildcfg.DefaultGOEXPERIMENT) // CleanGOEXPERIMENT is the minimal GOEXPERIMENT value needed to reproduce the // experiments enabled by RawGOEXPERIMENT. CleanGOEXPERIMENT = RawGOEXPERIMENT Experiment *buildcfg.ExperimentFlags ExperimentErr error )
Experiment configuration.
var ( GOROOT string // Either empty or produced by filepath.Join(GOROOT, …). GOROOTbin string GOROOTpkg string GOROOTsrc string GOBIN = Getenv("GOBIN") GOMODCACHE, GOMODCACHEChanged = EnvOrAndChanged("GOMODCACHE", gopathDir("pkg/mod")) // Used in envcmd.MkEnv and build ID computations. GOARM64, _ = EnvOrAndChanged("GOARM64", fmt.Sprint(buildcfg.GOARM64)) GOARM, _ = EnvOrAndChanged("GOARM", fmt.Sprint(buildcfg.GOARM)) GO386, _ = EnvOrAndChanged("GO386", buildcfg.GO386) GOAMD64, _ = EnvOrAndChanged("GOAMD64", fmt.Sprintf("%s%d", "v", buildcfg.GOAMD64)) GOMIPS, _ = EnvOrAndChanged("GOMIPS", buildcfg.GOMIPS) GOMIPS64, _ = EnvOrAndChanged("GOMIPS64", buildcfg.GOMIPS64) GOPPC64, _ = EnvOrAndChanged("GOPPC64", fmt.Sprintf("%s%d", "power", buildcfg.GOPPC64)) GORISCV64, _ = EnvOrAndChanged("GORISCV64", fmt.Sprintf("rva%du64", buildcfg.GORISCV64)) GOWASM, _ = EnvOrAndChanged("GOWASM", fmt.Sprint(buildcfg.GOWASM)) GOPROXY, GOPROXYChanged = EnvOrAndChanged("GOPROXY", "") GOSUMDB, GOSUMDBChanged = EnvOrAndChanged("GOSUMDB", "") GOPRIVATE = Getenv("GOPRIVATE") GONOPROXY, GONOPROXYChanged = EnvOrAndChanged("GONOPROXY", GOPRIVATE) GONOSUMDB, GONOSUMDBChanged = EnvOrAndChanged("GONOSUMDB", GOPRIVATE) GOINSECURE = Getenv("GOINSECURE") GOVCS = Getenv("GOVCS") )
var CmdEnv []EnvVar
CmdEnv is the new environment for running go tool commands. User binaries (during go test or go run) are run with OrigEnv, not CmdEnv.
var OrigEnv []string
OrigEnv is the original environment of the program at startup.
var SumdbDir = gopathDir("pkg/sumdb")
Functions ¶
func BuildXWriter ¶ added in go1.21.0
BuildXWriter returns nil if BuildX is false, or the writer to which BuildX output should be written otherwise.
func EnvFile ¶ added in go1.13
EnvFile returns the name of the Go environment configuration file, and reports whether the effective value differs from the default.
func EnvOrAndChanged ¶ added in go1.23.0
EnvOrAndChanged returns the environment variable value and reports whether it differs from the default value.
func GetArchEnv ¶ added in go1.13
GetArchEnv returns the name and setting of the GOARCH-specific architecture environment variable. If the current architecture has no GOARCH-specific variable, GetArchEnv returns empty key and value.
func Getenv ¶ added in go1.13
Getenv gets the value for the configuration key. It consults the operating system environment and then the go/env file. If Getenv is called for a key that cannot be set in the go/env file (for example GODEBUG), it panics. This ensures that CanGetenv is accurate, so that 'go env -w' stays in sync with what Getenv can retrieve.
func LookPath ¶ added in go1.22.0
LookPath wraps exec.LookPath and caches the result which can be called by multiple Goroutines at the same time.
func SetGOROOT ¶ added in go1.19
SetGOROOT sets GOROOT and associated variables to the given values.
If isTestGo is true, build.ToolDir is set based on the TESTGO_GOHOSTOS and TESTGO_GOHOSTARCH environment variables instead of runtime.GOOS and runtime.GOARCH.
func ToolExeSuffix ¶ added in go1.20
func ToolExeSuffix() string
ToolExeSuffix returns the suffix for executables installed in build.ToolDir.