Commit 7fa96f08 authored by Russ Cox's avatar Russ Cox

cmd/go: fix 'go get vanity/repo/...' in clean GOPATH

The pattern was only working if the checkout had
already been done, but the code was trying to make
it work even the first time. Test and fix.

Fixes #8335.

LGTM=r
R=golang-codereviews, r
CC=golang-codereviews, iant
https://golang.org/cl/146310043
parent 64df53ed
...@@ -948,6 +948,18 @@ elif ! grep "$GOARCH test3.go p xyzp/test3.go/123" testdata/std.out > /dev/null; ...@@ -948,6 +948,18 @@ elif ! grep "$GOARCH test3.go p xyzp/test3.go/123" testdata/std.out > /dev/null;
ok=false ok=false
fi fi
TEST go get works with vanity wildcards
d=$(mktemp -d -t testgoXXX)
export GOPATH=$d
if ! ./testgo get -u rsc.io/pdf/...; then
ok=false
elif [ ! -x $d/bin/pdfpasswd ]; then
echo did not build rsc.io/pdf/pdfpasswd
ok=false
fi
unset GOPATH
rm -rf $d
# clean up # clean up
if $started; then stop; fi if $started; then stop; fi
rm -rf testdata/bin testdata/bin1 rm -rf testdata/bin testdata/bin1
......
...@@ -361,7 +361,14 @@ var httpPrefixRE = regexp.MustCompile(`^https?:`) ...@@ -361,7 +361,14 @@ var httpPrefixRE = regexp.MustCompile(`^https?:`)
func repoRootForImportPath(importPath string) (*repoRoot, error) { func repoRootForImportPath(importPath string) (*repoRoot, error) {
rr, err := repoRootForImportPathStatic(importPath, "") rr, err := repoRootForImportPathStatic(importPath, "")
if err == errUnknownSite { if err == errUnknownSite {
rr, err = repoRootForImportDynamic(importPath) // If there are wildcards, look up the thing before the wildcard,
// hoping it applies to the wildcarded parts too.
// This makes 'go get rsc.io/pdf/...' work in a fresh GOPATH.
lookup := strings.TrimSuffix(importPath, "/...")
if i := strings.Index(lookup, "/.../"); i >= 0 {
lookup = lookup[:i]
}
rr, err = repoRootForImportDynamic(lookup)
// repoRootForImportDynamic returns error detail // repoRootForImportDynamic returns error detail
// that is irrelevant if the user didn't intend to use a // that is irrelevant if the user didn't intend to use a
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment