From 0d4b17d4c03bfcbe3a5959e2c1dc47f4f36e47ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Mon, 19 Dec 2022 15:40:47 +0100 Subject: modules: Make the module.workspace=off as default (note) Also, resolve any workspace file relative to the workingDir. Fixes #10553 --- modules/config.go | 20 ++++++++++++++++++-- modules/config_test.go | 7 +++++-- 2 files changed, 23 insertions(+), 4 deletions(-) (limited to 'modules') diff --git a/modules/config.go b/modules/config.go index 08154bc11..86166300a 100644 --- a/modules/config.go +++ b/modules/config.go @@ -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 diff --git a/modules/config_test.go b/modules/config_test.go index 371aab056..4ded2be66 100644 --- a/modules/config_test.go +++ b/modules/config_test.go @@ -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) { -- cgit v1.2.3