"cmd/go/internal/base"
"cmd/go/internal/cfg"
+ envcmd "cmd/go/internal/env"
)
var cmdBug = &base.Command{
fmt.Fprintln(&buf, "```")
fmt.Fprintf(&buf, "go version %s %s/%s\n", runtime.Version(), runtime.GOOS, runtime.GOARCH)
env := cfg.NewEnv
- env = append(env, extraEnvVars()...)
+ env = append(env, envcmd.ExtraEnvVars()...)
for _, e := range env {
// Hide the TERM environment variable from "go bug".
// See issue #18128
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-package main
+package env
import (
"fmt"
"cmd/go/internal/work"
)
-var cmdEnv = &base.Command{
+var CmdEnv = &base.Command{
Run: runEnv,
UsageLine: "env [var ...]",
Short: "print Go environment information",
`,
}
-func mkEnv() []cfg.EnvVar {
+func MkEnv() []cfg.EnvVar {
var b work.Builder
b.Init()
return ""
}
-// extraEnvVars returns environment variables that should not leak into child processes.
-func extraEnvVars() []cfg.EnvVar {
+// ExtraEnvVars returns environment variables that should not leak into child processes.
+func ExtraEnvVars() []cfg.EnvVar {
var b work.Builder
b.Init()
cppflags, cflags, cxxflags, fflags, ldflags := b.CFlags(&load.Package{})
func runEnv(cmd *base.Command, args []string) {
env := cfg.NewEnv
- env = append(env, extraEnvVars()...)
+ env = append(env, ExtraEnvVars()...)
if len(args) > 0 {
for _, name := range args {
fmt.Printf("%s\n", findEnv(env, name))
"cmd/go/internal/base"
"cmd/go/internal/cfg"
+ "cmd/go/internal/env"
fmtcmd "cmd/go/internal/fmt"
"cmd/go/internal/help"
"cmd/go/internal/test"
work.CmdBuild,
cmdClean,
cmdDoc,
- cmdEnv,
+ env.CmdEnv,
cmdBug,
cmdFix,
fmtcmd.CmdFmt,
// but in practice there might be skew
// This makes sure we all agree.
cfg.OrigEnv = os.Environ()
- cfg.NewEnv = mkEnv()
+ cfg.NewEnv = env.MkEnv()
for _, env := range cfg.NewEnv {
if os.Getenv(env.Name) != env.Value {
os.Setenv(env.Name, env.Value)