mirror of
https://github.com/gohugoio/hugo.git
synced 2025-09-01 22:42:45 +02:00
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
This commit is contained in:
@@ -14,12 +14,11 @@
|
||||
package hugofs
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
|
||||
"github.com/spf13/afero"
|
||||
)
|
||||
|
||||
@@ -232,7 +231,7 @@ func (l *baseFileDecoratorFile) Readdir(c int) (ofi []os.FileInfo, err error) {
|
||||
}
|
||||
fi, err = l.fs.decorate(fi, filename)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "decorate")
|
||||
return nil, fmt.Errorf("decorate: %w", err)
|
||||
}
|
||||
fisp = append(fisp, fi)
|
||||
}
|
||||
|
@@ -28,7 +28,7 @@ import (
|
||||
"github.com/gohugoio/hugo/hugofs/files"
|
||||
"golang.org/x/text/unicode/norm"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
"errors"
|
||||
|
||||
"github.com/gohugoio/hugo/common/hreflect"
|
||||
|
||||
|
@@ -21,8 +21,6 @@ import (
|
||||
|
||||
"github.com/gohugoio/hugo/hugofs/files"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
|
||||
radix "github.com/armon/go-radix"
|
||||
"github.com/spf13/afero"
|
||||
)
|
||||
@@ -191,7 +189,7 @@ func (fs *RootMappingFs) Dirs(base string) ([]FileMetaInfo, error) {
|
||||
fs = decorateDirs(fs, r.Meta)
|
||||
fi, err := fs.Stat("")
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "RootMappingFs.Dirs")
|
||||
return nil, fmt.Errorf("RootMappingFs.Dirs: %w", err)
|
||||
}
|
||||
|
||||
if !fi.IsDir() {
|
||||
@@ -560,7 +558,7 @@ func (fs *RootMappingFs) doLstat(name string) ([]FileMetaInfo, error) {
|
||||
|
||||
if fileCount > 1 {
|
||||
// Not supported by this filesystem.
|
||||
return nil, errors.Errorf("found multiple files with name %q, use .Readdir or the source filesystem directly", name)
|
||||
return nil, fmt.Errorf("found multiple files with name %q, use .Readdir or the source filesystem directly", name)
|
||||
}
|
||||
|
||||
return []FileMetaInfo{roots[0].fi}, nil
|
||||
|
@@ -14,11 +14,12 @@
|
||||
package hugofs
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
"errors"
|
||||
|
||||
"github.com/spf13/afero"
|
||||
)
|
||||
@@ -83,7 +84,7 @@ func (fs *SliceFs) LstatIfPossible(name string) (os.FileInfo, bool, error) {
|
||||
return decorateFileInfo(fi, fs, fs.getOpener(name), "", "", nil), false, nil
|
||||
}
|
||||
|
||||
return nil, false, errors.Errorf("lstat: files not supported: %q", name)
|
||||
return nil, false, fmt.Errorf("lstat: files not supported: %q", name)
|
||||
}
|
||||
|
||||
func (fs *SliceFs) Mkdir(n string, p os.FileMode) error {
|
||||
|
@@ -22,7 +22,7 @@ import (
|
||||
|
||||
"github.com/gohugoio/hugo/common/loggers"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
"errors"
|
||||
|
||||
"github.com/spf13/afero"
|
||||
)
|
||||
@@ -125,7 +125,7 @@ func (w *Walkway) Walk() error {
|
||||
if w.checkErr(w.root, err) {
|
||||
return nil
|
||||
}
|
||||
return w.walkFn(w.root, nil, errors.Wrapf(err, "walk: %q", w.root))
|
||||
return w.walkFn(w.root, nil, fmt.Errorf("walk: %q: %w", w.root, err))
|
||||
}
|
||||
fi = info.(FileMetaInfo)
|
||||
}
|
||||
@@ -192,7 +192,7 @@ func (w *Walkway) walk(path string, info FileMetaInfo, dirEntries []FileMetaInfo
|
||||
if w.checkErr(path, err) {
|
||||
return nil
|
||||
}
|
||||
return walkFn(path, info, errors.Wrapf(err, "walk: open %q (%q)", path, w.root))
|
||||
return walkFn(path, info, fmt.Errorf("walk: open %q (%q): %w", path, w.root, err))
|
||||
}
|
||||
|
||||
fis, err := f.Readdir(-1)
|
||||
@@ -201,7 +201,7 @@ func (w *Walkway) walk(path string, info FileMetaInfo, dirEntries []FileMetaInfo
|
||||
if w.checkErr(filename, err) {
|
||||
return nil
|
||||
}
|
||||
return walkFn(path, info, errors.Wrap(err, "walk: Readdir"))
|
||||
return walkFn(path, info, fmt.Errorf("walk: Readdir: %w", err))
|
||||
}
|
||||
|
||||
dirEntries = fileInfosToFileMetaInfos(fis)
|
||||
|
@@ -22,7 +22,7 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
"errors"
|
||||
|
||||
"github.com/gohugoio/hugo/common/para"
|
||||
"github.com/gohugoio/hugo/htesting"
|
||||
|
Reference in New Issue
Block a user