modules: Make the module.workspace=off as default (note)

Also, resolve any workspace file relative to the workingDir.

Fixes #10553
This commit is contained in:
Bjørn Erik Pedersen
2022-12-19 15:40:47 +01:00
parent 3afaca7584
commit 0d4b17d4c0
4 changed files with 25 additions and 4 deletions

View File

@@ -26,6 +26,8 @@ import (
"github.com/mitchellh/mapstructure"
)
const WorkspaceDisabled = "off"
var DefaultModuleConfig = Config{
// Default to direct, which means "git clone" and similar. We
@@ -41,6 +43,9 @@ var DefaultModuleConfig = Config{
// treated as private.
Private: "*.*",
// Default is no workspace resolution.
Workspace: WorkspaceDisabled,
// A list of replacement directives mapping a module path to a directory
// or a theme component in the themes folder.
// Note that this will turn the component into a traditional theme component
@@ -247,6 +252,16 @@ func decodeConfig(cfg config.Provider, pathReplacements map[string]string) (Conf
c.Mounts[i] = mnt
}
if c.Workspace == "" {
c.Workspace = WorkspaceDisabled
}
if c.Workspace != WorkspaceDisabled {
c.Workspace = filepath.Clean(c.Workspace)
if !filepath.IsAbs(c.Workspace) {
workingDir := cfg.GetString("workingDir")
c.Workspace = filepath.Join(workingDir, c.Workspace)
}
}
}
if themeSet {
@@ -294,8 +309,9 @@ type Config struct {
// Configures GOPRIVATE.
Private string
// Set the workspace file to use, e.g. hugo.work.
// Enables Go "Workspace" mode.
// Defaults to "off".
// Set to a work file, e.g. hugo.work, to enable Go "Workspace" mode.
// Can be relative to the working directory or absolute.
// Requires Go 1.18+
// See https://tip.golang.org/doc/go1.18
Workspace string