resources: Add full filename to image when processing fails
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 2 Mar 2020 11:39:26 +0000 (12:39 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 2 Mar 2020 11:39:26 +0000 (12:39 +0100)
Fixes #7000

resources/image.go

index 076f2ae4d63b1b6e2de1e3308f6e7bdb791d4d33..d1d9f650d673e35359444dc9df4f1e24e2cd4fbc 100644 (file)
@@ -36,6 +36,7 @@ import (
 
        "github.com/gohugoio/hugo/resources/resource"
 
+       "github.com/pkg/errors"
        _errors "github.com/pkg/errors"
 
        "github.com/gohugoio/hugo/helpers"
@@ -234,7 +235,7 @@ const imageProcWorkers = 1
 var imageProcSem = make(chan bool, imageProcWorkers)
 
 func (i *imageResource) doWithImageConfig(conf images.ImageConfig, f func(src image.Image) (image.Image, error)) (resource.Image, error) {
-       return i.getSpec().imageCache.getOrCreate(i, conf, func() (*imageResource, image.Image, error) {
+       img, err := i.getSpec().imageCache.getOrCreate(i, conf, func() (*imageResource, image.Image, error) {
                imageProcSem <- true
                defer func() {
                        <-imageProcSem
@@ -291,6 +292,13 @@ func (i *imageResource) doWithImageConfig(conf images.ImageConfig, f func(src im
 
                return ci, converted, nil
        })
+
+       if err != nil {
+               if i.root != nil && i.root.getFileInfo() != nil {
+                       return nil, errors.Wrapf(err, "image %q", i.root.getFileInfo().Meta().Filename())
+               }
+       }
+       return img, nil
 }
 
 func (i *imageResource) decodeImageConfig(action, spec string) (images.ImageConfig, error) {