func Main(analyzers ...*analysis.Analyzer)
Main is the main function of a vet-like analysis tool that must be invoked by a build system to analyze a single package.
The protocol required by 'go vet -vettool=...' is that the tool must support:
-flags describe flags in JSON
-V=full describe executable for build caching
foo.cfg perform separate modular analyze on the single
unit described by a JSON config file foo.cfg.
func Run(configFile string, analyzers []*analysis.Analyzer)
Run reads the *.cfg file, runs the analysis, and calls os.Exit with an appropriate error code. It assumes flags have already been set.
type Config struct {
ID string // e.g. "fmt [fmt.test]"
Compiler string
Dir string
ImportPath string
GoFiles []string
NonGoFiles []string
ImportMap map[string]string
PackageFile map[string]string
Standard map[string]bool
PackageVetx map[string]string
VetxOnly bool
VetxOutput string
SucceedOnTypecheckFailure bool
}
A Config describes a compilation unit to be analyzed. It is provided to the tool in a JSON-encoded file whose name ends with ".cfg".