Skip to content

Commit

Permalink
modules: Add modules.Workspace config for Go 1.18
Browse files Browse the repository at this point in the history
Sets `GOWORK` env var for Go 1.18.

Fixes gohugoio#9525
  • Loading branch information
bep committed Feb 18, 2022
1 parent b0eea00 commit 92c0e9e
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 0 deletions.
4 changes: 4 additions & 0 deletions docs/content/en/hugo-modules/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ proxy = "direct"
noProxy = "none"
private = "*.*"
replacements = ""
workspace = ""
{{< /code-toggle >}}


Expand All @@ -41,6 +42,9 @@ noProxy
private
: Comma separated glob list matching paths that should be treated as private.

workspace {{< new-in "0.83.0" >}}
The workspace file to use. This enables Go workspace mode. Note that this can also be set via OS env, e.g. `export HUGO_MODULE_WORKSPACE=/my/hugo.work` This only works with Go 1.18+.

replacements {{< new-in "0.77.0" >}}
: A comma separated (or a slice) list of module path to directory replacement mapping, e.g. `github.com/bep/myprettytheme -> ../..,github.com/bep/shortcodes -> /some/path`. This is mostly useful for temporary locally development of a module, and then it makes sense to set it as an OS environment variable, e.g: `env HUGO_MODULE_REPLACEMENTS="github.com/bep/myprettytheme -> ../.."`. Any relative path is relate to [themesDir](https://gohugo.io/getting-started/configuration/#all-configuration-settings), and absolute paths are allowed.

Expand Down
1 change: 1 addition & 0 deletions modules/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ func NewClient(cfg ClientConfig) *Client {
"GOPRIVATE", mcfg.Private,
"GONOPROXY", mcfg.NoProxy,
"GOPATH", cfg.CacheDir,
"GOWORK", mcfg.Workspace, // Requires Go 1.18, see https://tip.golang.org/doc/go1.18
// GOCACHE was introduced in Go 1.15. This matches the location derived from GOPATH above.
"GOCACHE", filepath.Join(cfg.CacheDir, "pkg", "mod"),
)
Expand Down
6 changes: 6 additions & 0 deletions modules/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -295,6 +295,12 @@ type Config struct {
NoProxy string
// Configures GOPRIVATE.
Private string

// Set the workspace file to use, e.g. hugo.work.
// Enables Go "Workspace" mode.
// Requires Go 1.18+
// See https://tip.golang.org/doc/go1.18
Workspace string
}

// hasModuleImport reports whether the project config have one or more
Expand Down

0 comments on commit 92c0e9e

Please sign in to comment.