Documentation ¶
Overview ¶
Package base defines shared basic pieces of the go command, in particular logging and the Command structure.
Index ¶
- Constants
- Variables
- func AddBuildFlagsNX(flags *flag.FlagSet)
- func AddKnownFlag(name string)
- func AddLoadFlags(flags *flag.FlagSet)
- func AtExit(f func())
- func EnvForDir(dir string, base []string) []string
- func Errorf(format string, args ...interface{})
- func Exit()
- func ExitIfErrors()
- func ExpandScanner(err error) error
- func Fatalf(format string, args ...interface{})
- func GOFLAGS() []string
- func GetExitStatus() int
- func InitGOFLAGS()
- func IsTestFile(file string) bool
- func RelPaths(paths []string) []string
- func Run(cmdargs ...interface{})
- func RunStdin(cmdline []string)
- func SetExitStatus(n int)
- func SetFromGOFLAGS(flags flag.FlagSet)
- func ShortPath(path string) string
- func StartSigHandlers()
- func Tool(toolName string) string
- type Command
- type StringsFlag
Constants ¶
const ToolWindowsExtension = ".exe"
Variables ¶
var ( ToolGOOS = runtime.GOOS ToolGOARCH = runtime.GOARCH ToolIsWindows = ToolGOOS == "windows" ToolDir = build.ToolDir )
Configuration for finding tool binaries.
var Cwd = getwd()
var Go = &Command{
UsageLine: "go",
Long: `Go is a tool for managing Go source code.`,
}
var Interrupted = make(chan struct{})
Interrupted is closed when the go command receives an interrupt signal.
var SignalTrace os.Signal = syscall.SIGQUIT
SignalTrace is the signal to send to make a Go program crash with a stack trace.
var Usage func()
Usage is the usage-reporting function, filled in by package main but here for reference by other packages.
Functions ¶
func AddBuildFlagsNX ¶
AddBuildFlagsNX adds the -n and -x build flags to the flag set.
func AddKnownFlag ¶
func AddKnownFlag(name string)
AddKnownFlag adds name to the list of known flags for use in $GOFLAGS.
func AddLoadFlags ¶
AddLoadFlags adds the -mod build flag to the flag set.
func EnvForDir ¶
EnvForDir returns a modified environment suitable for running in the given directory. The environment is the supplied base environment but with an updated $PWD, so that an os.Getwd in the child will be faster.
func ExitIfErrors ¶
func ExitIfErrors()
func ExpandScanner ¶
ExpandScanner expands a scanner.List error into all the errors in the list. The default Error method only shows the first error and does not shorten paths.
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 InitGOFLAGS ¶
func InitGOFLAGS()
InitGOFLAGS initializes the goflags list from $GOFLAGS. If goflags is already initialized, it does nothing.
func IsTestFile ¶
IsTestFile reports whether the source file is a set of tests and should therefore be excluded from coverage analysis.
func RelPaths ¶
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 SetExitStatus ¶
func SetExitStatus(n int)
func SetFromGOFLAGS ¶
SetFromGOFLAGS sets the flags in the given flag set using settings in $GOFLAGS.
Types ¶
type Command ¶
type Command struct { // Run runs the command. // The args are the arguments after the command name. Run func(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 ¶
LongName returns the command's long name: all the words in the usage line between "go" and a flag or argument,
func (*Command) Name ¶
Name returns the command's short name: the last word in the usage line before a flag or argument.
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