1
0
mirror of https://github.com/golang/go synced 2024-11-20 04:24:51 -07:00

cmd/go: in go get, don't try to perform discovery on non-hosts

Before, "go get -v foo/bar" was assuming "foo" was a hostname
and trying to perform discovery on it. Now, require a dot in
the first path component (the hostname).

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5981057
This commit is contained in:
Brad Fitzpatrick 2012-04-04 07:24:13 -07:00
parent ac51c1384a
commit a8197456b1

View File

@ -422,11 +422,15 @@ func repoRootForImportPathStatic(importPath, scheme string) (*repoRoot, error) {
func repoRootForImportDynamic(importPath string) (*repoRoot, error) { func repoRootForImportDynamic(importPath string) (*repoRoot, error) {
slash := strings.Index(importPath, "/") slash := strings.Index(importPath, "/")
if slash < 0 { if slash < 0 {
return nil, fmt.Errorf("missing / in import %q", importPath) return nil, errors.New("import path doesn't contain a slash")
}
host := importPath[:slash]
if !strings.Contains(host, ".") {
return nil, errors.New("import path doesn't contain a hostname")
} }
urlStr, body, err := httpsOrHTTP(importPath) urlStr, body, err := httpsOrHTTP(importPath)
if err != nil { if err != nil {
return nil, fmt.Errorf("http/https fetch for import %q: %v", importPath, err) return nil, fmt.Errorf("http/https fetch: %v", err)
} }
defer body.Close() defer body.Close()
metaImport, err := matchGoImport(parseMetaGoImports(body), importPath) metaImport, err := matchGoImport(parseMetaGoImports(body), importPath)