summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2023-06-27 09:16:42 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2023-06-27 21:55:35 +0200
commitfa0e16f4c79a703d122f1e3a3a99f4b779aea9b2 (patch)
tree1c4d7c86daee453906cf91ae7a208ab54aa7d1ab
parent12e4c4d5dc7cdb700a6b4f341171a8361e2faa7b (diff)
Fix false path warnings with resources.PostProcess
Fixes #7735
-rw-r--r--commands/hugobuilder.go13
-rw-r--r--hugolib/hugo_sites_build.go15
-rw-r--r--testscripts/commands/hugo__path-warnings-postprocess.txt20
-rw-r--r--testscripts/commands/hugo__path-warnings.txt26
4 files changed, 61 insertions, 13 deletions
diff --git a/commands/hugobuilder.go b/commands/hugobuilder.go
index 71992e409..3e96bfc73 100644
--- a/commands/hugobuilder.go
+++ b/commands/hugobuilder.go
@@ -45,7 +45,6 @@ import (
"github.com/gohugoio/hugo/resources/page"
"github.com/gohugoio/hugo/tpl"
"github.com/gohugoio/hugo/watcher"
- "github.com/spf13/afero"
"github.com/spf13/fsync"
"golang.org/x/sync/errgroup"
"golang.org/x/sync/semaphore"
@@ -419,18 +418,6 @@ func (c *hugoBuilder) build() error {
return err
}
- if c.r.printPathWarnings {
- hugofs.WalkFilesystems(h.Fs.PublishDir, func(fs afero.Fs) bool {
- if dfs, ok := fs.(hugofs.DuplicatesReporter); ok {
- dupes := dfs.ReportDuplicates()
- if dupes != "" {
- c.r.logger.Warnln("Duplicate target paths:", dupes)
- }
- }
- return false
- })
- }
-
if c.r.printUnusedTemplates {
unusedTemplates := h.Tmpl().(tpl.UnusedTemplatesProvider).UnusedTemplates()
for _, unusedTemplate := range unusedTemplates {
diff --git a/hugolib/hugo_sites_build.go b/hugolib/hugo_sites_build.go
index c552b9de8..ea73c493f 100644
--- a/hugolib/hugo_sites_build.go
+++ b/hugolib/hugo_sites_build.go
@@ -143,6 +143,21 @@ func (h *HugoSites) Build(config BuildCfg, events ...fsnotify.Event) error {
if err := h.render(infol, conf); err != nil {
h.SendError(fmt.Errorf("render: %w", err))
}
+
+ if h.Configs.Base.LogPathWarnings {
+ // We need to do this before any post processing, as that may write to the same files twice
+ // and create false positives.
+ hugofs.WalkFilesystems(h.Fs.PublishDir, func(fs afero.Fs) bool {
+ if dfs, ok := fs.(hugofs.DuplicatesReporter); ok {
+ dupes := dfs.ReportDuplicates()
+ if dupes != "" {
+ h.Log.Warnln("Duplicate target paths:", dupes)
+ }
+ }
+ return false
+ })
+ }
+
if err := h.postProcess(infol); err != nil {
h.SendError(fmt.Errorf("postProcess: %w", err))
}
diff --git a/testscripts/commands/hugo__path-warnings-postprocess.txt b/testscripts/commands/hugo__path-warnings-postprocess.txt
new file mode 100644
index 000000000..0677da084
--- /dev/null
+++ b/testscripts/commands/hugo__path-warnings-postprocess.txt
@@ -0,0 +1,20 @@
+hugo --printPathWarnings
+
+! stdout 'Duplicate'
+
+-- hugo.toml --
+-- assets/css/styles.css --
+body {
+ background-color: #000;
+}
+-- content/p1.md --
+-- content/p2.md --
+-- content/p3.md --
+-- layouts/index.html --
+Home.
+-- layouts/_default/single.html --
+{{ $css := resources.Get "css/styles.css" }}
+{{ $css := $css | minify | fingerprint | resources.PostProcess }}
+CSS: {{ $css.RelPermalink }}
+{{ .Title }}
+
diff --git a/testscripts/commands/hugo__path-warnings.txt b/testscripts/commands/hugo__path-warnings.txt
new file mode 100644
index 000000000..f7e3acd95
--- /dev/null
+++ b/testscripts/commands/hugo__path-warnings.txt
@@ -0,0 +1,26 @@
+hugo --printPathWarnings
+
+stdout 'Duplicate'
+
+-- hugo.toml --
+-- assets/css/styles.css --
+body {
+ background-color: #000;
+}
+-- content/p1.md --
+---
+url: /p1/
+---
+-- content/p2.md --
+---
+url: /p1/
+---
+-- content/p3.md --
+---
+url: /p1/
+---
+-- layouts/index.html --
+Home.
+-- layouts/_default/single.html --
+Single.
+