aboutsummaryrefslogtreecommitdiffhomepage
path: root/cache
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <[email protected]>2022-05-02 16:07:52 +0200
committerBjørn Erik Pedersen <[email protected]>2022-05-06 19:43:22 +0200
commitf2946da9e806c2bafbdd26707fe339db79bd980b (patch)
treeb5609317a861ea5f399e094e1b9287ca71dc22d1 /cache
parent6eea32bd6bc8e7a7dd07a8cb6a8343ae2c74aba0 (diff)
downloadhugo-f2946da9e806c2bafbdd26707fe339db79bd980b.tar.gz
hugo-f2946da9e806c2bafbdd26707fe339db79bd980b.zip
Improve error messages, esp. when the server is running
* Add file context to minifier errors when publishing * Misc fixes (see issues) * Allow custom server error template in layouts/server/error.html To get to this, this commit also cleans up and simplifies the code surrounding errors and files. This also removes the usage of `github.com/pkg/errors`, mostly because of https://github.com/pkg/errors/issues/223 -- but also because most of this is now built-in to Go. Fixes #9852 Fixes #9857 Fixes #9863
Diffstat (limited to 'cache')
-rw-r--r--cache/filecache/filecache_config.go14
-rw-r--r--cache/filecache/filecache_pruner.go4
2 files changed, 10 insertions, 8 deletions
diff --git a/cache/filecache/filecache_config.go b/cache/filecache/filecache_config.go
index 816c6b8a6..a82133ab7 100644
--- a/cache/filecache/filecache_config.go
+++ b/cache/filecache/filecache_config.go
@@ -14,6 +14,7 @@
package filecache
import (
+ "fmt"
"path"
"path/filepath"
"strings"
@@ -25,8 +26,9 @@ import (
"github.com/gohugoio/hugo/helpers"
+ "errors"
+
"github.com/mitchellh/mapstructure"
- "github.com/pkg/errors"
"github.com/spf13/afero"
)
@@ -153,7 +155,7 @@ func DecodeConfig(fs afero.Fs, cfg config.Provider) (Configs, error) {
}
if err := decoder.Decode(v); err != nil {
- return nil, errors.Wrap(err, "failed to decode filecache config")
+ return nil, fmt.Errorf("failed to decode filecache config: %w", err)
}
if cc.Dir == "" {
@@ -162,7 +164,7 @@ func DecodeConfig(fs afero.Fs, cfg config.Provider) (Configs, error) {
name := strings.ToLower(k)
if !valid[name] {
- return nil, errors.Errorf("%q is not a valid cache name", name)
+ return nil, fmt.Errorf("%q is not a valid cache name", name)
}
c[name] = cc
@@ -197,12 +199,12 @@ func DecodeConfig(fs afero.Fs, cfg config.Provider) (Configs, error) {
if !v.isResourceDir {
if isOsFs && !filepath.IsAbs(v.Dir) {
- return c, errors.Errorf("%q must resolve to an absolute directory", v.Dir)
+ return c, fmt.Errorf("%q must resolve to an absolute directory", v.Dir)
}
// Avoid cache in root, e.g. / (Unix) or c:\ (Windows)
if len(strings.TrimPrefix(v.Dir, filepath.VolumeName(v.Dir))) == 1 {
- return c, errors.Errorf("%q is a root folder and not allowed as cache dir", v.Dir)
+ return c, fmt.Errorf("%q is a root folder and not allowed as cache dir", v.Dir)
}
}
@@ -242,5 +244,5 @@ func resolveDirPlaceholder(fs afero.Fs, cfg config.Provider, placeholder string)
return filepath.Base(workingDir), false, nil
}
- return "", false, errors.Errorf("%q is not a valid placeholder (valid values are :cacheDir or :resourceDir)", placeholder)
+ return "", false, fmt.Errorf("%q is not a valid placeholder (valid values are :cacheDir or :resourceDir)", placeholder)
}
diff --git a/cache/filecache/filecache_pruner.go b/cache/filecache/filecache_pruner.go
index db1875701..e5e571972 100644
--- a/cache/filecache/filecache_pruner.go
+++ b/cache/filecache/filecache_pruner.go
@@ -14,12 +14,12 @@
package filecache
import (
+ "fmt"
"io"
"os"
"github.com/gohugoio/hugo/hugofs"
- "github.com/pkg/errors"
"github.com/spf13/afero"
)
@@ -39,7 +39,7 @@ func (c Caches) Prune() (int, error) {
if os.IsNotExist(err) {
continue
}
- return counter, errors.Wrapf(err, "failed to prune cache %q", k)
+ return counter, fmt.Errorf("failed to prune cache %q: %w", k, err)
}
}