diff options
author | Bjørn Erik Pedersen <[email protected]> | 2022-05-02 16:07:52 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <[email protected]> | 2022-05-06 19:43:22 +0200 |
commit | f2946da9e806c2bafbdd26707fe339db79bd980b (patch) | |
tree | b5609317a861ea5f399e094e1b9287ca71dc22d1 /cache | |
parent | 6eea32bd6bc8e7a7dd07a8cb6a8343ae2c74aba0 (diff) | |
download | hugo-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.go | 14 | ||||
-rw-r--r-- | cache/filecache/filecache_pruner.go | 4 |
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) } } |