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 /langs | |
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 'langs')
-rw-r--r-- | langs/config.go | 4 | ||||
-rw-r--r-- | langs/i18n/translationProvider.go | 15 | ||||
-rw-r--r-- | langs/language.go | 5 |
3 files changed, 9 insertions, 15 deletions
diff --git a/langs/config.go b/langs/config.go index ef63e700e..81e6fc2ab 100644 --- a/langs/config.go +++ b/langs/config.go @@ -23,7 +23,7 @@ import ( "github.com/spf13/cast" - "github.com/pkg/errors" + "errors" "github.com/gohugoio/hugo/config" ) @@ -72,7 +72,7 @@ func LoadLanguageSettings(cfg config.Provider, oldLangs Languages) (c LanguagesC } else { languages2, err = toSortedLanguages(cfg, languages) if err != nil { - return c, errors.Wrap(err, "Failed to parse multilingual config") + return c, fmt.Errorf("Failed to parse multilingual config: %w", err) } } diff --git a/langs/i18n/translationProvider.go b/langs/i18n/translationProvider.go index 44bd52f0c..52f9349c2 100644 --- a/langs/i18n/translationProvider.go +++ b/langs/i18n/translationProvider.go @@ -15,6 +15,7 @@ package i18n import ( "encoding/json" + "fmt" "strings" "github.com/gohugoio/hugo/common/paths" @@ -30,7 +31,6 @@ import ( "github.com/gohugoio/hugo/deps" "github.com/gohugoio/hugo/hugofs" "github.com/gohugoio/hugo/source" - _errors "github.com/pkg/errors" ) // TranslationProvider provides translation handling, i.e. loading @@ -83,7 +83,7 @@ const artificialLangTagPrefix = "art-x-" func addTranslationFile(bundle *i18n.Bundle, r source.File) error { f, err := r.FileInfo().Meta().Open() if err != nil { - return _errors.Wrapf(err, "failed to open translations file %q:", r.LogicalName()) + return fmt.Errorf("failed to open translations file %q:: %w", r.LogicalName(), err) } b := helpers.ReaderToBytes(f) @@ -96,7 +96,7 @@ func addTranslationFile(bundle *i18n.Bundle, r source.File) error { try := artificialLangTagPrefix + lang _, err = language.Parse(try) if err != nil { - return _errors.Errorf("%q %s.", try, err) + return fmt.Errorf("%q: %s", try, err) } name = artificialLangTagPrefix + name } @@ -111,7 +111,7 @@ func addTranslationFile(bundle *i18n.Bundle, r source.File) error { return nil } } - return errWithFileContext(_errors.Wrapf(err, "failed to load translations"), r) + return errWithFileContext(fmt.Errorf("failed to load translations: %w", err), r) } return nil @@ -138,11 +138,6 @@ func errWithFileContext(inerr error, r source.File) error { } defer f.Close() - err, _ = herrors.WithFileContext( - inerr, - realFilename, - f, - herrors.SimpleLineMatcher) + return herrors.NewFileError(realFilename, inerr).UpdateContent(f, herrors.SimpleLineMatcher) - return err } diff --git a/langs/language.go b/langs/language.go index a0294a103..d6b30ec10 100644 --- a/langs/language.go +++ b/langs/language.go @@ -14,6 +14,7 @@ package langs import ( + "fmt" "sort" "strings" "sync" @@ -22,8 +23,6 @@ import ( "golang.org/x/text/collate" "golang.org/x/text/language" - "github.com/pkg/errors" - "github.com/gohugoio/hugo/common/htime" "github.com/gohugoio/hugo/common/maps" "github.com/gohugoio/hugo/config" @@ -311,7 +310,7 @@ func GetCollator(l *Language) *Collator { func (l *Language) loadLocation(tzStr string) error { location, err := time.LoadLocation(tzStr) if err != nil { - return errors.Wrapf(err, "invalid timeZone for language %q", l.Lang) + return fmt.Errorf("invalid timeZone for language %q: %w", l.Lang, err) } l.location = location |