- func MatchFile(name string, tags map[string]bool) bool
- func ReadComments(f io.Reader) (byte, error)
- func ReadImports(f io.Reader, reportSyntaxError bool, imports *string) (byte, error)
- func ScanDir(dir string, tags map[string]bool) (string, string, error)
- func ScanFiles(files string, tags map[string]bool) (string, string, error)
- func ShouldBuild(content byte, tags map[string]bool) bool
MatchFile returns false if the name contains a $GOOS or $GOARCH suffix which does not match the current system. The recognized name formats are:
name_$(GOOS).* name_$(GOARCH).* name_$(GOOS)_$(GOARCH).* name_$(GOOS)_test.* name_$(GOARCH)_test.* name_$(GOOS)_$(GOARCH)_test.*
An exception: if GOOS=android, then files with GOOS=linux are also matched.
If tags["*"] is true, then MatchFile will consider all possible GOOS and GOARCH to be available and will consequently always return true.
func ReadComments ¶
ReadComments is like ioutil.ReadAll, except that it only reads the leading block of comments in the file.
func ReadImports ¶
ReadImports is like ioutil.ReadAll, except that it expects a Go file as input and stops reading the input once the imports have completed.
func ShouldBuild ¶
ShouldBuild reports whether it is okay to use this file, The rule is that in the file's leading run of // comments and blank lines, which must be followed by a blank line (to avoid including a Go package clause doc comment), lines beginning with '// +build' are taken as build directives.
The file is accepted only if each such line lists something matching the file. For example:
// +build windows linux
marks the file as applicable only on Windows and Linux.
If tags["*"] is true, then ShouldBuild will consider every build tag except "ignore" to be both true and false for the purpose of satisfying build tags, in order to estimate (conservatively) whether a file could ever possibly be used in any build.