diff options
author | Jay Conrod <jayconrod@google.com> | 2019-10-22 14:45:31 -0400 |
---|---|---|
committer | Jay Conrod <jayconrod@google.com> | 2019-10-22 20:00:03 +0000 |
commit | 8ba43eaad8263f26e16846e345389146ec234364 (patch) | |
tree | 9b4e1b44e4ed4b2014db4a1fad9ee6426b4041cc /src/cmd/go/internal/work/build.go | |
parent | 88186e5e232625f9c91d639e0cb90a88c6cf1172 (diff) | |
download | go-8ba43eaad8263f26e16846e345389146ec234364.tar.gz go-8ba43eaad8263f26e16846e345389146ec234364.zip |
cmd/go: support -modcacherw in 'go mod' subcommands
The -modcacherw flag is now registered in work.AddModCommonFlags,
which is called from work.AddBuildFlags, where it was registered
before. 'go mod' subcommands register the flag by calling
work.AddModCommonFlags directly.
Also, build commands now exit with an error if -modcacherw is set
explicitly (not in GOFLAGS) in GOPATH mode.
Updates #31481
Change-Id: I461e59a51ed31b006fff4d5c57c2a866be0bbf38
Reviewed-on: https://go-review.googlesource.com/c/go/+/202563
Run-TryBot: Jay Conrod <jayconrod@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
Diffstat (limited to 'src/cmd/go/internal/work/build.go')
-rw-r--r-- | src/cmd/go/internal/work/build.go | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/cmd/go/internal/work/build.go b/src/cmd/go/internal/work/build.go index 9b74963f43..d2b4bd3c65 100644 --- a/src/cmd/go/internal/work/build.go +++ b/src/cmd/go/internal/work/build.go @@ -224,9 +224,10 @@ type BuildFlagMask int const ( DefaultBuildFlags BuildFlagMask = 0 OmitModFlag BuildFlagMask = 1 << iota + OmitModCommonFlags ) -// addBuildFlags adds the flags common to the build, clean, get, +// AddBuildFlags adds the flags common to the build, clean, get, // install, list, run, and test commands. func AddBuildFlags(cmd *base.Command, mask BuildFlagMask) { cmd.Flag.BoolVar(&cfg.BuildA, "a", false, "") @@ -243,10 +244,12 @@ func AddBuildFlags(cmd *base.Command, mask BuildFlagMask) { if mask&OmitModFlag == 0 { cmd.Flag.StringVar(&cfg.BuildMod, "mod", "", "") } + if mask&OmitModCommonFlags == 0 { + AddModCommonFlags(cmd) + } cmd.Flag.StringVar(&cfg.BuildContext.InstallSuffix, "installsuffix", "", "") cmd.Flag.Var(&load.BuildLdflags, "ldflags", "") cmd.Flag.BoolVar(&cfg.BuildLinkshared, "linkshared", false, "") - cmd.Flag.BoolVar(&cfg.BuildModcacheRW, "modcacherw", false, "") cmd.Flag.StringVar(&cfg.BuildPkgdir, "pkgdir", "", "") cmd.Flag.BoolVar(&cfg.BuildRace, "race", false, "") cmd.Flag.BoolVar(&cfg.BuildMSan, "msan", false, "") @@ -259,6 +262,12 @@ func AddBuildFlags(cmd *base.Command, mask BuildFlagMask) { cmd.Flag.StringVar(&cfg.DebugActiongraph, "debug-actiongraph", "", "") } +// AddModCommonFlags adds the module-related flags common to build commands +// and 'go mod' subcommands. +func AddModCommonFlags(cmd *base.Command) { + cmd.Flag.BoolVar(&cfg.ModCacheRW, "modcacherw", false, "") +} + // tagsFlag is the implementation of the -tags flag. type tagsFlag []string |