]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: accept go get domain.root
authorRuss Cox <rsc@golang.org>
Tue, 14 Jul 2015 19:08:10 +0000 (15:08 -0400)
committerRuss Cox <rsc@golang.org>
Wed, 15 Jul 2015 04:44:54 +0000 (04:44 +0000)
Fixes #9357.

Change-Id: I11f0652758c4ea80debec29c3b99a72baca6d745
Reviewed-on: https://go-review.googlesource.com/12193
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/cmd/go/go_test.go
src/cmd/go/vcs.go

index 1f3615f4982dc3364e732d90d260a46e4918676f..1e7388467b31adac3aa0470605ad1e7a7ff9cc25 100644 (file)
@@ -2133,6 +2133,7 @@ func TestGoGetUpdate(t *testing.T) {
        // golang.org/issue/9224.
        // The recursive updating was trying to walk to
        // former dependencies, not current ones.
+
        testenv.MustHaveExternalNetwork(t)
 
        tg := testgo(t)
@@ -2157,3 +2158,29 @@ func TestGoGetUpdate(t *testing.T) {
        rewind()
        tg.run("get", "-d", "-u", "github.com/rsc/go-get-issue-9224-cmd")
 }
+
+func TestGoGetDomainRoot(t *testing.T) {
+       // golang.org/issue/9357.
+       // go get foo.io (not foo.io/subdir) was not working consistently.
+
+       testenv.MustHaveExternalNetwork(t)
+
+       tg := testgo(t)
+       defer tg.cleanup()
+       tg.makeTempdir()
+       tg.setenv("GOPATH", tg.path("."))
+
+       // go-get-issue-9357.appspot.com is running
+       // the code at github.com/rsc/go-get-issue-9357,
+       // a trivial Go on App Engine app that serves a
+       // <meta> tag for the domain root.
+       tg.run("get", "-d", "go-get-issue-9357.appspot.com")
+       tg.run("get", "go-get-issue-9357.appspot.com")
+       tg.run("get", "-u", "go-get-issue-9357.appspot.com")
+
+       tg.must(os.RemoveAll(tg.path("src/go-get-issue-9357.appspot.com")))
+       tg.run("get", "go-get-issue-9357.appspot.com")
+
+       tg.must(os.RemoveAll(tg.path("src/go-get-issue-9357.appspot.com")))
+       tg.run("get", "-u", "go-get-issue-9357.appspot.com")
+}
index 29433de54102d02c6bf07ed3eeee9a68301dc604..5393801ca5f1523faa10063db645a4e9359b59b9 100644 (file)
@@ -650,11 +650,11 @@ func repoRootForImportPathStatic(importPath, scheme string, security securityMod
 // repoRootForImportDynamic finds a *repoRoot for a custom domain that's not
 // statically known by repoRootForImportPathStatic.
 //
-// This handles custom import paths like "name.tld/pkg/foo".
+// This handles custom import paths like "name.tld/pkg/foo" or just "name.tld".
 func repoRootForImportDynamic(importPath string, security securityMode) (*repoRoot, error) {
        slash := strings.Index(importPath, "/")
        if slash < 0 {
-               return nil, errors.New("import path does not contain a slash")
+               slash = len(importPath)
        }
        host := importPath[:slash]
        if !strings.Contains(host, ".") {