summaryrefslogtreecommitdiffstats
path: root/hugolib/config.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-10-22 20:20:48 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-10-23 08:09:41 +0200
commited7b3e261909fe425ef64216f12806840c45b205 (patch)
treec082a1f0b2f0ac4cbb95faa1779fdbaa2845b5a7 /hugolib/config.go
parent2bf686ee217808186385bfcf6156f15bbdb33651 (diff)
commands, hugolib: Get file context in "config parse failed" errors
Fixes #5325
Diffstat (limited to 'hugolib/config.go')
-rw-r--r--hugolib/config.go18
1 files changed, 15 insertions, 3 deletions
diff --git a/hugolib/config.go b/hugolib/config.go
index b21981304..32fa2dfca 100644
--- a/hugolib/config.go
+++ b/hugolib/config.go
@@ -16,10 +16,11 @@ package hugolib
import (
"errors"
"fmt"
-
"io"
"strings"
+ "github.com/gohugoio/hugo/common/herrors"
+
"github.com/gohugoio/hugo/hugolib/paths"
_errors "github.com/pkg/errors"
@@ -106,12 +107,23 @@ func LoadConfig(d ConfigSourceDescriptor, doWithConfig ...func(cfg config.Provid
v.SetConfigFile(configFilenames[0])
v.AddConfigPath(d.Path)
+ applyFileContext := func(filename string, err error) error {
+ err, _ = herrors.WithFileContextForFile(
+ err,
+ filename,
+ filename,
+ fs,
+ herrors.SimpleLineMatcher)
+
+ return err
+ }
+
var configFileErr error
err := v.ReadInConfig()
if err != nil {
if _, ok := err.(viper.ConfigParseError); ok {
- return nil, configFiles, err
+ return nil, configFiles, applyFileContext(v.ConfigFileUsed(), err)
}
configFileErr = ErrNoConfigFile
}
@@ -129,7 +141,7 @@ func LoadConfig(d ConfigSourceDescriptor, doWithConfig ...func(cfg config.Provid
return nil, configFiles, fmt.Errorf("Unable to open Config file.\n (%s)\n", err)
}
if err = v.MergeConfig(r); err != nil {
- return nil, configFiles, fmt.Errorf("Unable to parse/merge Config file (%s).\n (%s)\n", configFile, err)
+ return nil, configFiles, applyFileContext(configFile, err)
}
configFiles = append(configFiles, configFile)
}