diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-06-09 10:58:18 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-06-14 17:00:32 +0200 |
commit | d392893cd73dc00c927f342778f6dca9628d328e (patch) | |
tree | e2ea3eec09f36b7122ecdbc498c3c130e240e85c /resources | |
parent | a886dd53b80322e1edf924f2ede4d4ea037c5baf (diff) |
Misc config loading fixes
The main motivation behind this is simplicity and correctnes, but the new small config library is also faster:
```
BenchmarkDefaultConfigProvider/Viper-16 252418 4546 ns/op 2720 B/op 30 allocs/op
BenchmarkDefaultConfigProvider/Custom-16 450756 2651 ns/op 1008 B/op 6 allocs/op
```
Fixes #8633
Fixes #8618
Fixes #8630
Updates #8591
Closes #6680
Closes #5192
Diffstat (limited to 'resources')
-rw-r--r-- | resources/page/pagemeta/page_frontmatter_test.go | 13 | ||||
-rw-r--r-- | resources/page/pagination_test.go | 4 | ||||
-rw-r--r-- | resources/page/testhelpers_test.go | 4 | ||||
-rw-r--r-- | resources/resource_metadata.go | 2 | ||||
-rw-r--r-- | resources/resource_transformers/htesting/testhelpers.go | 4 | ||||
-rw-r--r-- | resources/resource_transformers/js/options.go | 7 | ||||
-rw-r--r-- | resources/testhelpers_test.go | 6 |
7 files changed, 20 insertions, 20 deletions
diff --git a/resources/page/pagemeta/page_frontmatter_test.go b/resources/page/pagemeta/page_frontmatter_test.go index 7c4c77a91..6e3833b0f 100644 --- a/resources/page/pagemeta/page_frontmatter_test.go +++ b/resources/page/pagemeta/page_frontmatter_test.go @@ -18,8 +18,9 @@ import ( "testing" "time" + "github.com/gohugoio/hugo/config" + "github.com/gohugoio/hugo/resources/resource" - "github.com/spf13/viper" qt "github.com/frankban/quicktest" ) @@ -72,7 +73,7 @@ func newTestFd() *FrontMatterDescriptor { func TestFrontMatterNewConfig(t *testing.T) { c := qt.New(t) - cfg := viper.New() + cfg := config.New() cfg.Set("frontmatter", map[string]interface{}{ "date": []string{"publishDate", "LastMod"}, @@ -89,7 +90,7 @@ func TestFrontMatterNewConfig(t *testing.T) { c.Assert(fc.publishDate, qt.DeepEquals, []string{"date"}) // Default - cfg = viper.New() + cfg = config.New() fc, err = newFrontmatterConfig(cfg) c.Assert(err, qt.IsNil) c.Assert(fc.date, qt.DeepEquals, []string{"date", "publishdate", "pubdate", "published", "lastmod", "modified"}) @@ -117,7 +118,7 @@ func TestFrontMatterDatesHandlers(t *testing.T) { for _, handlerID := range []string{":filename", ":fileModTime", ":git"} { - cfg := viper.New() + cfg := config.New() cfg.Set("frontmatter", map[string]interface{}{ "date": []string{handlerID, "date"}, @@ -157,7 +158,7 @@ func TestFrontMatterDatesCustomConfig(t *testing.T) { c := qt.New(t) - cfg := viper.New() + cfg := config.New() cfg.Set("frontmatter", map[string]interface{}{ "date": []string{"mydate"}, "lastmod": []string{"publishdate"}, @@ -204,7 +205,7 @@ func TestFrontMatterDatesDefaultKeyword(t *testing.T) { c := qt.New(t) - cfg := viper.New() + cfg := config.New() cfg.Set("frontmatter", map[string]interface{}{ "date": []string{"mydate", ":default"}, diff --git a/resources/page/pagination_test.go b/resources/page/pagination_test.go index 8d4f857d7..07ad6233b 100644 --- a/resources/page/pagination_test.go +++ b/resources/page/pagination_test.go @@ -18,7 +18,7 @@ import ( "html/template" "testing" - "github.com/spf13/viper" + "github.com/gohugoio/hugo/config" qt "github.com/frankban/quicktest" "github.com/gohugoio/hugo/output" @@ -196,7 +196,7 @@ func doTestPagerNoPages(t *testing.T, paginator *Paginator) { func TestPaginationURLFactory(t *testing.T) { t.Parallel() c := qt.New(t) - cfg := viper.New() + cfg := config.New() cfg.Set("paginatePath", "zoo") for _, uglyURLs := range []bool{false, true} { diff --git a/resources/page/testhelpers_test.go b/resources/page/testhelpers_test.go index 187930461..1a0a6586a 100644 --- a/resources/page/testhelpers_test.go +++ b/resources/page/testhelpers_test.go @@ -29,7 +29,7 @@ import ( "github.com/bep/gitmap" "github.com/gohugoio/hugo/helpers" "github.com/gohugoio/hugo/resources/resource" - "github.com/spf13/viper" + "github.com/gohugoio/hugo/navigation" @@ -69,7 +69,7 @@ func newTestPageWithFile(filename string) *testPage { } func newTestPathSpec() *helpers.PathSpec { - return newTestPathSpecFor(viper.New()) + return newTestPathSpecFor(config.New()) } func newTestPathSpecFor(cfg config.Provider) *helpers.PathSpec { diff --git a/resources/resource_metadata.go b/resources/resource_metadata.go index a0c232c67..0dd0945e3 100644 --- a/resources/resource_metadata.go +++ b/resources/resource_metadata.go @@ -130,7 +130,7 @@ func AssignMetadata(metadata []map[string]interface{}, resources ...resource.Res if found { m := maps.ToStringMap(params) // Needed for case insensitive fetching of params values - maps.ToLower(m) + maps.PrepareParams(m) ma.updateParams(m) } } diff --git a/resources/resource_transformers/htesting/testhelpers.go b/resources/resource_transformers/htesting/testhelpers.go index 8eacf7da4..21333eccb 100644 --- a/resources/resource_transformers/htesting/testhelpers.go +++ b/resources/resource_transformers/htesting/testhelpers.go @@ -17,17 +17,17 @@ import ( "path/filepath" "github.com/gohugoio/hugo/cache/filecache" + "github.com/gohugoio/hugo/config" "github.com/gohugoio/hugo/helpers" "github.com/gohugoio/hugo/hugofs" "github.com/gohugoio/hugo/media" "github.com/gohugoio/hugo/output" "github.com/gohugoio/hugo/resources" "github.com/spf13/afero" - "github.com/spf13/viper" ) func NewTestResourceSpec() (*resources.Spec, error) { - cfg := viper.New() + cfg := config.New() cfg.Set("baseURL", "https://example.org") cfg.Set("publishDir", "public") diff --git a/resources/resource_transformers/js/options.go b/resources/resource_transformers/js/options.go index ceed22f34..84f571f17 100644 --- a/resources/resource_transformers/js/options.go +++ b/resources/resource_transformers/js/options.go @@ -20,9 +20,9 @@ import ( "path/filepath" "strings" - "github.com/spf13/afero" - + "github.com/gohugoio/hugo/common/maps" "github.com/pkg/errors" + "github.com/spf13/afero" "github.com/evanw/esbuild/pkg/api" @@ -30,7 +30,6 @@ import ( "github.com/gohugoio/hugo/hugofs" "github.com/gohugoio/hugo/media" "github.com/mitchellh/mapstructure" - "github.com/spf13/cast" ) const ( @@ -348,7 +347,7 @@ func toBuildOptions(opts Options) (buildOptions api.BuildOptions, err error) { var defines map[string]string if opts.Defines != nil { - defines = cast.ToStringMapString(opts.Defines) + defines = maps.ToStringMapString(opts.Defines) } // By default we only need to specify outDir and no outFile diff --git a/resources/testhelpers_test.go b/resources/testhelpers_test.go index 32e4213ea..12dc8efe8 100644 --- a/resources/testhelpers_test.go +++ b/resources/testhelpers_test.go @@ -10,6 +10,7 @@ import ( "strings" "testing" + "github.com/gohugoio/hugo/config" "github.com/gohugoio/hugo/langs" "github.com/gohugoio/hugo/modules" @@ -22,7 +23,6 @@ import ( "github.com/gohugoio/hugo/resources/page" "github.com/gohugoio/hugo/resources/resource" "github.com/spf13/afero" - "github.com/spf13/viper" ) type specDescriptor struct { @@ -31,8 +31,8 @@ type specDescriptor struct { fs afero.Fs } -func createTestCfg() *viper.Viper { - cfg := viper.New() +func createTestCfg() config.Provider { + cfg := config.New() cfg.Set("resourceDir", "resources") cfg.Set("contentDir", "content") cfg.Set("dataDir", "data") |