aboutsummaryrefslogtreecommitdiffstats
path: root/build/ci.go
diff options
context:
space:
mode:
Diffstat (limited to 'build/ci.go')
-rw-r--r--build/ci.go16
1 files changed, 9 insertions, 7 deletions
diff --git a/build/ci.go b/build/ci.go
index 31c4885a3..152c86d1b 100644
--- a/build/ci.go
+++ b/build/ci.go
@@ -289,27 +289,29 @@ func doTest(cmdline []string) {
build.MustRun(goTool("vet", packages...))
}
if *misspell {
- // The spell checker doesn't work on packages, gather all .go files for it
- sources := []string{}
+ // Ensure the spellchecker is available
+ build.MustRun(goTool("get", "github.com/client9/misspell/cmd/misspell"))
+
+ // Windows (AppVeyor) chokes on long argument lists, check packages individualy
for _, pkg := range packages {
- // Gather all the source files of the package
+ // The spell checker doesn't work on packages, gather all .go files for it
out, err := goTool("list", "-f", "{{.Dir}}{{range .GoFiles}}\n{{.}}{{end}}{{range .CgoFiles}}\n{{.}}{{end}}{{range .TestGoFiles}}\n{{.}}{{end}}", pkg).CombinedOutput()
if err != nil {
log.Fatalf("source file listing failed: %v\n%s", err, string(out))
}
// Retrieve the folder and assemble the source list
lines := strings.Split(string(out), "\n")
-
root := lines[0]
+
+ sources := make([]string, 0, len(lines)-1)
for _, line := range lines[1:] {
if line = strings.TrimSpace(line); line != "" {
sources = append(sources, filepath.Join(root, line))
}
}
+ // Run the spell checker for this particular package
+ build.MustRunCommand(filepath.Join(GOBIN, "misspell"), append([]string{"-error"}, sources...)...)
}
- // Download the spell checker tool and run on all source files
- build.MustRun(goTool("get", "github.com/client9/misspell/cmd/misspell"))
- build.MustRunCommand(filepath.Join(GOBIN, "misspell"), append([]string{"-error"}, sources...)...)
}
// Run the actual tests.
gotest := goTool("test")