diff options
author | Péter Szilágyi <peterke@gmail.com> | 2017-03-24 17:52:42 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-24 17:52:42 +0800 |
commit | 37e252587a3429ab71cbb3ace7dca09733fa6c7c (patch) | |
tree | b73049695e8064ae54b048358f949966e0e5361f /internal | |
parent | bb7dca275c44fe9d176e629b3440adf92d26a150 (diff) | |
parent | 69ac6cc70e4f2e712be91be2795ef79bce3f0e89 (diff) | |
download | dexon-37e252587a3429ab71cbb3ace7dca09733fa6c7c.tar dexon-37e252587a3429ab71cbb3ace7dca09733fa6c7c.tar.gz dexon-37e252587a3429ab71cbb3ace7dca09733fa6c7c.tar.bz2 dexon-37e252587a3429ab71cbb3ace7dca09733fa6c7c.tar.lz dexon-37e252587a3429ab71cbb3ace7dca09733fa6c7c.tar.xz dexon-37e252587a3429ab71cbb3ace7dca09733fa6c7c.tar.zst dexon-37e252587a3429ab71cbb3ace7dca09733fa6c7c.zip |
Merge pull request #3813 from fjl/build-fixes-2
build: unify vendor skipping, always run go vet
Diffstat (limited to 'internal')
-rw-r--r-- | internal/build/util.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/internal/build/util.go b/internal/build/util.go index 4df7b9138..44f6760b9 100644 --- a/internal/build/util.go +++ b/internal/build/util.go @@ -26,6 +26,7 @@ import ( "os" "os/exec" "path/filepath" + "runtime" "strings" "text/template" ) @@ -136,3 +137,30 @@ func CopyFile(dst, src string, mode os.FileMode) { log.Fatal(err) } } + +// ExpandPackagesNoVendor expands a cmd/go import path pattern, skipping +// vendored packages. +func ExpandPackagesNoVendor(patterns []string) []string { + expand := false + for _, pkg := range patterns { + if strings.Contains(pkg, "...") { + expand = true + } + } + if expand { + args := append([]string{"list"}, patterns...) + cmd := exec.Command(filepath.Join(runtime.GOROOT(), "bin", "go"), args...) + out, err := cmd.CombinedOutput() + if err != nil { + log.Fatalf("package listing failed: %v\n%s", err, string(out)) + } + var packages []string + for _, line := range strings.Split(string(out), "\n") { + if !strings.Contains(line, "/vendor/") { + packages = append(packages, strings.TrimSpace(line)) + } + } + return packages + } + return patterns +} |