mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-07 20:30:36 -05:00
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:
parent
3afaca7584
commit
0d4b17d4c0
4 changed files with 25 additions and 4 deletions
|
@ -206,6 +206,7 @@ func TestMultiSitesBuild(t *testing.T) {
|
|||
{multiSiteYAMLConfigTemplate, "yml"},
|
||||
{multiSiteJSONConfigTemplate, "json"},
|
||||
} {
|
||||
config := config
|
||||
t.Run(config.suffix, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
doTestMultiSitesBuild(t, config.content, config.suffix)
|
||||
|
|
|
@ -63,6 +63,7 @@ func TestPermalink(t *testing.T) {
|
|||
}
|
||||
|
||||
for i, test := range tests {
|
||||
i := i
|
||||
test := test
|
||||
t.Run(fmt.Sprintf("%s-%d", test.file, i), func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -44,13 +44,13 @@ func TestDecodeConfig(t *testing.T) {
|
|||
|
||||
c.Run("Basic", func(c *qt.C) {
|
||||
tomlConfig := `
|
||||
workingDir = "/src/project"
|
||||
[module]
|
||||
|
||||
workspace = "hugo.work"
|
||||
[module.hugoVersion]
|
||||
min = "0.54.2"
|
||||
max = "0.199.0"
|
||||
extended = true
|
||||
|
||||
[[module.mounts]]
|
||||
source="src/project/blog"
|
||||
target="content/blog"
|
||||
|
@ -83,6 +83,8 @@ lang="en"
|
|||
c.Assert(hv.IsValid(), qt.Equals, true)
|
||||
}
|
||||
|
||||
c.Assert(mcfg.Workspace, qt.Equals, "/src/project/hugo.work")
|
||||
|
||||
c.Assert(len(mcfg.Mounts), qt.Equals, 1)
|
||||
c.Assert(len(mcfg.Imports), qt.Equals, 1)
|
||||
imp := mcfg.Imports[0]
|
||||
|
@ -90,6 +92,7 @@ lang="en"
|
|||
c.Assert(imp.Mounts[1].Source, qt.Equals, "src/markdown/blog")
|
||||
c.Assert(imp.Mounts[1].Target, qt.Equals, "content/blog")
|
||||
c.Assert(imp.Mounts[1].Lang, qt.Equals, "en")
|
||||
|
||||
})
|
||||
|
||||
c.Run("Replacements", func(c *qt.C) {
|
||||
|
|
Loading…
Reference in a new issue