// Copyright 2011 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main import "path/filepath" func init() { addBuildFlagsNX(cmdVet) } var cmdVet = &Command{ Run: runVet, UsageLine: "vet [-n] [-x] [packages]", Short: "run go tool vet on packages", Long: ` Vet runs the Go vet command on the packages named by the import paths. For more about vet, see 'godoc golang.org/x/tools/cmd/vet'. For more about specifying packages, see 'go help packages'. To run the vet tool with specific options, run 'go tool vet'. The -n flag prints commands that would be executed. The -x flag prints commands as they are executed. See also: go fmt, go fix. `, } func runVet(cmd *Command, args []string) { for _, p := range packages(args) { // Vet expects to be given a set of files all from the same package. // Run once for package p and once for package p_test. if len(p.GoFiles)+len(p.CgoFiles)+len(p.TestGoFiles) > 0 { runVetFiles(p, stringList(p.GoFiles, p.CgoFiles, p.TestGoFiles, p.SFiles)) } if len(p.XTestGoFiles) > 0 { runVetFiles(p, stringList(p.XTestGoFiles)) } } } func runVetFiles(p *Package, files []string) { for i := range files { files[i] = filepath.Join(p.Dir, files[i]) } run(tool("vet"), relPaths(files)) }