mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
Make sure module config loading errors have file positioning info
Fixes #8845
This commit is contained in:
parent
9ff17c3324
commit
d70c485707
4 changed files with 16 additions and 9 deletions
|
@ -100,6 +100,17 @@ func WithFileContextForFile(e error, realFilename, filename string, fs afero.Fs,
|
||||||
return WithFileContext(e, realFilename, f, matcher)
|
return WithFileContext(e, realFilename, f, matcher)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WithFileContextForFileDefault tries to add file context using the default line matcher.
|
||||||
|
func WithFileContextForFileDefault(err error, filename string, fs afero.Fs) error {
|
||||||
|
err, _ = WithFileContextForFile(
|
||||||
|
err,
|
||||||
|
filename,
|
||||||
|
filename,
|
||||||
|
fs,
|
||||||
|
SimpleLineMatcher)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// WithFileContextForFile will try to add a file context with lines matching the given matcher.
|
// WithFileContextForFile will try to add a file context with lines matching the given matcher.
|
||||||
// If no match could be found, the original error is returned with false as the second return value.
|
// If no match could be found, the original error is returned with false as the second return value.
|
||||||
func WithFileContext(e error, realFilename string, r io.Reader, matcher LineMatcherFn) (error, bool) {
|
func WithFileContext(e error, realFilename string, r io.Reader, matcher LineMatcherFn) (error, bool) {
|
||||||
|
|
|
@ -18,6 +18,8 @@ import (
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/gohugoio/hugo/common/herrors"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
|
|
||||||
"github.com/gohugoio/hugo/common/paths"
|
"github.com/gohugoio/hugo/common/paths"
|
||||||
|
@ -58,7 +60,7 @@ func FromConfigString(config, configType string) (Provider, error) {
|
||||||
func FromFile(fs afero.Fs, filename string) (Provider, error) {
|
func FromFile(fs afero.Fs, filename string) (Provider, error) {
|
||||||
m, err := loadConfigFromFile(fs, filename)
|
m, err := loadConfigFromFile(fs, filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, herrors.WithFileContextForFileDefault(err, filename, fs)
|
||||||
}
|
}
|
||||||
return NewFrom(m), nil
|
return NewFrom(m), nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -507,11 +507,5 @@ func (configLoader) loadSiteConfig(cfg config.Provider) (scfg SiteConfig, err er
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l configLoader) wrapFileError(err error, filename string) error {
|
func (l configLoader) wrapFileError(err error, filename string) error {
|
||||||
err, _ = herrors.WithFileContextForFile(
|
return herrors.WithFileContextForFileDefault(err, filename, l.Fs)
|
||||||
err,
|
|
||||||
filename,
|
|
||||||
filename,
|
|
||||||
l.Fs,
|
|
||||||
herrors.SimpleLineMatcher)
|
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -437,7 +437,7 @@ func (c *collector) applyThemeConfig(tc *moduleAdapter) error {
|
||||||
var err error
|
var err error
|
||||||
tc.cfg, err = config.FromFile(c.fs, configFilename)
|
tc.cfg, err = config.FromFile(c.fs, configFilename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrapf(err, "failed to read module config for %q in %q", tc.Path(), configFilename)
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue