Package base defines shared basic pieces of the go command, in particular logging and the Command structure.



    View Source
    const ToolWindowsExtension = ".exe"


    View Source
    var (
    	ToolGOOS      = runtime.GOOS
    	ToolGOARCH    = runtime.GOARCH
    	ToolIsWindows = ToolGOOS == "windows"
    	ToolDir       = build.ToolDir

      Configuration for finding tool binaries.

      View Source
      var Cwd = getwd()
      View Source
      var Go = &Command{
      	UsageLine: "go",
      	Long:      `Go is a tool for managing Go source code.`,
      View Source
      var Interrupted = make(chan struct{})

        Interrupted is closed when the go command receives an interrupt signal.

        View Source
        var SignalTrace os.Signal = syscall.SIGQUIT

          SignalTrace is the signal to send to make a Go program crash with a stack trace.

          View Source
          var Usage func()

            Usage is the usage-reporting function, filled in by package main but here for reference by other packages.


            func AddBuildFlagsNX

            func AddBuildFlagsNX(flags *flag.FlagSet)

              AddBuildFlagsNX adds the -n and -x build flags to the flag set.

              func AddModCommonFlags

              func AddModCommonFlags(flags *flag.FlagSet)

                AddModCommonFlags adds the module-related flags common to build commands and 'go mod' subcommands.

                func AddModFlag

                func AddModFlag(flags *flag.FlagSet)

                  AddModFlag adds the -mod build flag to the flag set.

                  func AppendPWD

                  func AppendPWD(base []string, dir string) []string

                    AppendPWD returns the result of appending PWD=dir to the environment base.

                    The resulting environment makes os.Getwd more efficient for a subprocess running in dir.

                    func AtExit

                    func AtExit(f func())

                    func Errorf

                    func Errorf(format string, args ...interface{})

                    func Exit

                    func Exit()

                    func ExitIfErrors

                    func ExitIfErrors()

                    func Fatalf

                    func Fatalf(format string, args ...interface{})

                    func GOFLAGS

                    func GOFLAGS() []string

                      GOFLAGS returns the flags from $GOFLAGS. The list can be assumed to contain one string per flag, with each string either beginning with -name or --name.

                      func GetExitStatus

                      func GetExitStatus() int

                      func InGOFLAGS

                      func InGOFLAGS(flag string) bool

                        InGOFLAGS returns whether GOFLAGS contains the given flag, such as "-mod".

                        func InitGOFLAGS

                        func InitGOFLAGS()

                          InitGOFLAGS initializes the goflags list from $GOFLAGS. If goflags is already initialized, it does nothing.

                          func IsTestFile

                          func IsTestFile(file string) bool

                            IsTestFile reports whether the source file is a set of tests and should therefore be excluded from coverage analysis.

                            func RelPaths

                            func RelPaths(paths []string) []string

                              RelPaths returns a copy of paths with absolute paths made relative to the current directory if they would be shorter.

                              func Run

                              func Run(cmdargs ...interface{})

                                Run runs the command, with stdout and stderr connected to the go command's own stdout and stderr. If the command fails, Run reports the error using Errorf.

                                func RunStdin

                                func RunStdin(cmdline []string)

                                  RunStdin is like run but connects Stdin.

                                  func SetExitStatus

                                  func SetExitStatus(n int)

                                  func SetFromGOFLAGS

                                  func SetFromGOFLAGS(flags *flag.FlagSet)

                                    SetFromGOFLAGS sets the flags in the given flag set using settings in $GOFLAGS.

                                    func ShortPath

                                    func ShortPath(path string) string

                                      ShortPath returns an absolute or relative name for path, whatever is shorter.

                                      func StartSigHandlers

                                      func StartSigHandlers()

                                        StartSigHandlers starts the signal handlers.

                                        func Tool

                                        func Tool(toolName string) string

                                          Tool returns the path to the named tool (for example, "vet"). If the tool cannot be found, Tool exits the process.


                                          type Command

                                          type Command struct {
                                          	// Run runs the command.
                                          	// The args are the arguments after the command name.
                                          	Run func(ctx context.Context, cmd *Command, args []string)
                                          	// UsageLine is the one-line usage message.
                                          	// The words between "go" and the first flag or argument in the line are taken to be the command name.
                                          	UsageLine string
                                          	// Short is the short description shown in the 'go help' output.
                                          	Short string
                                          	// Long is the long message shown in the 'go help <this-command>' output.
                                          	Long string
                                          	// Flag is a set of flags specific to this command.
                                          	Flag flag.FlagSet
                                          	// CustomFlags indicates that the command will do its own
                                          	// flag parsing.
                                          	CustomFlags bool
                                          	// Commands lists the available commands and help topics.
                                          	// The order here is the order in which they are printed by 'go help'.
                                          	// Note that subcommands are in general best avoided.
                                          	Commands []*Command

                                            A Command is an implementation of a go command like go build or go fix.

                                            func (*Command) LongName

                                            func (c *Command) LongName() string

                                              LongName returns the command's long name: all the words in the usage line between "go" and a flag or argument,

                                              func (*Command) Name

                                              func (c *Command) Name() string

                                                Name returns the command's short name: the last word in the usage line before a flag or argument.

                                                func (*Command) Runnable

                                                func (c *Command) Runnable() bool

                                                  Runnable reports whether the command can be run; otherwise it is a documentation pseudo-command such as importpath.

                                                  func (*Command) Usage

                                                  func (c *Command) Usage()

                                                  type StringsFlag

                                                  type StringsFlag []string

                                                    A StringsFlag is a command-line flag that interprets its argument as a space-separated list of possibly-quoted strings.

                                                    func (*StringsFlag) Set

                                                    func (v *StringsFlag) Set(s string) error

                                                    func (*StringsFlag) String

                                                    func (v *StringsFlag) String() string
                                                    GOOS=linux, GOARCH=amd64