From 179909f20556262422a8b99c059eacdfcebc48ee Mon Sep 17 00:00:00 2001 From: Kyle Wood Date: Fri, 16 Nov 2018 10:46:14 -0600 Subject: [PATCH] cmd/go: disallow version string in go mod init module path 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 TryBot-Result: Gobot Gobot Reviewed-by: Bryan C. Mills --- src/cmd/go/internal/modcmd/init.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/cmd/go/internal/modcmd/init.go b/src/cmd/go/internal/modcmd/init.go index f510a46262..0f7421e584 100644 --- a/src/cmd/go/internal/modcmd/init.go +++ b/src/cmd/go/internal/modcmd/init.go @@ -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 } -- 2.50.0