summaryrefslogtreecommitdiffstats
path: root/tpl/tplimpl/template_errors.go
diff options
context:
space:
mode:
Diffstat (limited to 'tpl/tplimpl/template_errors.go')
-rw-r--r--tpl/tplimpl/template_errors.go56
1 files changed, 56 insertions, 0 deletions
diff --git a/tpl/tplimpl/template_errors.go b/tpl/tplimpl/template_errors.go
new file mode 100644
index 000000000..df80726f5
--- /dev/null
+++ b/tpl/tplimpl/template_errors.go
@@ -0,0 +1,56 @@
+// Copyright 2018 The Hugo Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package tplimpl
+
+import (
+ "github.com/gohugoio/hugo/common/herrors"
+ "github.com/pkg/errors"
+ "github.com/spf13/afero"
+)
+
+type templateInfo struct {
+ name string
+ template string
+ isText bool // HTML or plain text template.
+
+ // Used to create some error context in error situations
+ fs afero.Fs
+
+ // The filename relative to the fs above.
+ filename string
+
+ // The real filename (if possible). Used for logging.
+ realFilename string
+}
+
+func (t templateInfo) IsZero() bool {
+ return t.name == ""
+}
+
+func (t templateInfo) resolveType() templateType {
+ return resolveTemplateType(t.name)
+}
+
+func (info templateInfo) errWithFileContext(what string, err error) error {
+ err = errors.Wrapf(err, what)
+
+ err, _ = herrors.WithFileContextForFile(
+ err,
+ info.realFilename,
+ info.filename,
+ info.fs,
+ herrors.SimpleLineMatcher)
+
+ return err
+}