mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
modules: Adjust watch logic vs workspace use definitions
This commit is contained in:
parent
6db527483d
commit
330fa89411
3 changed files with 16 additions and 6 deletions
|
@ -23,7 +23,7 @@ proxy = "direct"
|
||||||
noProxy = "none"
|
noProxy = "none"
|
||||||
private = "*.*"
|
private = "*.*"
|
||||||
replacements = ""
|
replacements = ""
|
||||||
workspace = ""
|
workspace = "off"
|
||||||
{{< /code-toggle >}}
|
{{< /code-toggle >}}
|
||||||
|
|
||||||
noVendor
|
noVendor
|
||||||
|
@ -42,7 +42,7 @@ private
|
||||||
: Comma separated glob list matching paths that should be treated as private.
|
: Comma separated glob list matching paths that should be treated as private.
|
||||||
|
|
||||||
workspace
|
workspace
|
||||||
: 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+.
|
: 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+. In Hugo `v0.109.0` we changed the default to `off` and we now resolve any relative work filenames relative to the working directory.
|
||||||
|
|
||||||
replacements
|
replacements
|
||||||
: A comma separated (or a slice) list of module path to directory replacement mapping, e.g. `github.com/bep/my-theme -> ../..,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/my-theme -> ../.."`. Any relative path is relate to [themesDir](https://gohugo.io/getting-started/configuration/#all-configuration-settings), and absolute paths are allowed.
|
: A comma separated (or a slice) list of module path to directory replacement mapping, e.g. `github.com/bep/my-theme -> ../..,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/my-theme -> ../.."`. Any relative path is relate to [themesDir](https://gohugo.io/getting-started/configuration/#all-configuration-settings), and absolute paths are allowed.
|
||||||
|
|
|
@ -14,6 +14,9 @@
|
||||||
package modules
|
package modules
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/gohugoio/hugo/common/hugo"
|
"github.com/gohugoio/hugo/common/hugo"
|
||||||
|
@ -43,8 +46,9 @@ func TestDecodeConfig(t *testing.T) {
|
||||||
c := qt.New(t)
|
c := qt.New(t)
|
||||||
|
|
||||||
c.Run("Basic", func(c *qt.C) {
|
c.Run("Basic", func(c *qt.C) {
|
||||||
|
tempDir := c.TempDir()
|
||||||
tomlConfig := `
|
tomlConfig := `
|
||||||
workingDir = "/src/project"
|
workingDir = %q
|
||||||
[module]
|
[module]
|
||||||
workspace = "hugo.work"
|
workspace = "hugo.work"
|
||||||
[module.hugoVersion]
|
[module.hugoVersion]
|
||||||
|
@ -65,7 +69,11 @@ source="src/markdown/blog"
|
||||||
target="content/blog"
|
target="content/blog"
|
||||||
lang="en"
|
lang="en"
|
||||||
`
|
`
|
||||||
cfg, err := config.FromConfigString(tomlConfig, "toml")
|
|
||||||
|
hugoWorkFilename := filepath.Join(tempDir, "hugo.work")
|
||||||
|
f, _ := os.Create(hugoWorkFilename)
|
||||||
|
f.Close()
|
||||||
|
cfg, err := config.FromConfigString(fmt.Sprintf(tomlConfig, tempDir), "toml")
|
||||||
c.Assert(err, qt.IsNil)
|
c.Assert(err, qt.IsNil)
|
||||||
|
|
||||||
mcfg, err := DecodeConfig(cfg)
|
mcfg, err := DecodeConfig(cfg)
|
||||||
|
@ -83,7 +91,7 @@ lang="en"
|
||||||
c.Assert(hv.IsValid(), qt.Equals, true)
|
c.Assert(hv.IsValid(), qt.Equals, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
c.Assert(mcfg.Workspace, qt.Equals, "/src/project/hugo.work")
|
c.Assert(mcfg.Workspace, qt.Equals, hugoWorkFilename)
|
||||||
|
|
||||||
c.Assert(len(mcfg.Mounts), qt.Equals, 1)
|
c.Assert(len(mcfg.Mounts), qt.Equals, 1)
|
||||||
c.Assert(len(mcfg.Imports), qt.Equals, 1)
|
c.Assert(len(mcfg.Imports), qt.Equals, 1)
|
||||||
|
|
|
@ -184,5 +184,7 @@ func (m *moduleAdapter) Watch() bool {
|
||||||
return m.Replace().Version() == ""
|
return m.Replace().Version() == ""
|
||||||
}
|
}
|
||||||
|
|
||||||
return false
|
// Any module set up in a workspace file will have Indirect set to false.
|
||||||
|
// That leaves modules inside the read-only module cache.
|
||||||
|
return !m.gomod.Indirect
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue