diff options
author | Joshua Crowgey <jcrowgey@uw.edu> | 2020-02-13 06:02:10 +0000 |
---|---|---|
committer | Bryan C. Mills <bcmills@google.com> | 2020-02-26 14:31:35 +0000 |
commit | 26aadfa0442249d4b55d7135134eb7ec0a43a850 (patch) | |
tree | 53a9b20fa4ac37385b47ec3dd856dd32d341543d | |
parent | cb74dcc172de2779a2f65ea830f687156c98ad50 (diff) | |
download | go-26aadfa0442249d4b55d7135134eb7ec0a43a850.tar.gz go-26aadfa0442249d4b55d7135134eb7ec0a43a850.zip |
cmd/vendor: create modules.txt even for unused deps
`go mod vendor` should create vendor/modules.txt even when the only deps
in go.mod are unused.
Fixes: #36580
Change-Id: I92a746d3f013bc2bdc3d2cec6e14b16f606c2edd
GitHub-Last-Rev: ea39a1c62294f42e5e5aab049f466189de0fd42d
GitHub-Pull-Request: golang/go#36920
Reviewed-on: https://go-review.googlesource.com/c/go/+/217135
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
-rw-r--r-- | src/cmd/go/internal/modcmd/vendor.go | 5 | ||||
-rw-r--r-- | src/cmd/go/testdata/script/mod_vendor_unused_only.txt | 17 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/cmd/go/internal/modcmd/vendor.go b/src/cmd/go/internal/modcmd/vendor.go index 0c00d1222e..8509ceb7a8 100644 --- a/src/cmd/go/internal/modcmd/vendor.go +++ b/src/cmd/go/internal/modcmd/vendor.go @@ -123,6 +123,11 @@ func runVendor(cmd *base.Command, args []string) { fmt.Fprintf(os.Stderr, "go: no dependencies to vendor\n") return } + + if err := os.MkdirAll(vdir, 0777); err != nil { + base.Fatalf("go mod vendor: %v", err) + } + if err := ioutil.WriteFile(filepath.Join(vdir, "modules.txt"), buf.Bytes(), 0666); err != nil { base.Fatalf("go mod vendor: %v", err) } diff --git a/src/cmd/go/testdata/script/mod_vendor_unused_only.txt b/src/cmd/go/testdata/script/mod_vendor_unused_only.txt new file mode 100644 index 0000000000..839c6453cf --- /dev/null +++ b/src/cmd/go/testdata/script/mod_vendor_unused_only.txt @@ -0,0 +1,17 @@ +# Ensure that we generate a vendor/modules.txt file even when the only +# requirements in go.mod are unused. Regression test for +# golang.org/issue/36580 + +env GO111MODULE=on + +go mod vendor +cmp go1.14-modules.txt vendor/modules.txt + +-- go.mod -- +module example.com/m +go 1.14 + +require example.com v1.0.0 // indirect +-- go1.14-modules.txt -- +# example.com v1.0.0 +## explicit |