]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: disallow version string in go mod init module path
authorKyle Wood <kyle@kylewood.cc>
Fri, 16 Nov 2018 16:46:14 +0000 (10:46 -0600)
committerBryan C. Mills <bcmills@google.com>
Fri, 7 Dec 2018 22:42:18 +0000 (22:42 +0000)
To prevent confusion, go mod init should not allow version strings in
the module path when provided as an argument. Instead, fail with a
useful error message.

Fixes #28803

Change-Id: I59272a91b042e32cef33c2e2116f760ca1def218
Reviewed-on: https://go-review.googlesource.com/c/150018
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
src/cmd/go/internal/modcmd/init.go

index f510a46262b4eb95c619c94043bed5ee7a5ef0a3..0f7421e5849f2f934c94ece4e58ff1793e1161f1 100644 (file)
@@ -10,6 +10,7 @@ import (
        "cmd/go/internal/base"
        "cmd/go/internal/modload"
        "os"
+       "strings"
 )
 
 var cmdInit = &base.Command{
@@ -37,5 +38,8 @@ func runInit(cmd *base.Command, args []string) {
        if _, err := os.Stat("go.mod"); err == nil {
                base.Fatalf("go mod init: go.mod already exists")
        }
+       if strings.Contains(modload.CmdModModule, "@") {
+               base.Fatalf("go mod init: module path must not contain '@'")
+       }
        modload.InitMod() // does all the hard work
 }