aboutsummaryrefslogtreecommitdiffhomepage
path: root/langs
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 /langs
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 'langs')
-rw-r--r--langs/config.go4
-rw-r--r--langs/i18n/translationProvider.go15
-rw-r--r--langs/language.go5
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