code: func GoTool(tool string, args ...string) *exec.Cmd {
  	args = append([]string{tool}, args...)
  	return exec.Command(filepath.Join(runtime.GOROOT(), "bin", "go"), args...)
  }
docs: // GoTool returns the command that runs a go tool. This uses go from GOROOT instead of PATH
  // so that go commands executed by build use the same version of Go as the 'host' that runs
  // build code. e.g.
  //
  //     /usr/lib/go-1.12.1/bin/go run build/ci.go ...
  //
  // runs using go 1.12.1 and invokes go 1.12.1 tools from the same GOROOT. This is also important
  // because runtime.Version checks on the host should match the tools that are run.