summaryrefslogtreecommitdiff
path: root/caddyconfig/caddyfile/dispenser.go
diff options
context:
space:
mode:
authorWeidiDeng <weidi_deng@icloud.com>2023-05-26 03:05:00 +0800
committerGitHub <noreply@github.com>2023-05-25 13:05:00 -0600
commit9cde71552576dcc724eff38dee42879c927b72ec (patch)
tree5af6bec905fadbc7ef0f9d8be610f7ffe3758682 /caddyconfig/caddyfile/dispenser.go
parent942fbb37ec46f1907e57a04c44ca790bd47ed52c (diff)
caddyfile: Track import name instead of modifying filename (#5540)
* Merge branch 'master' into import_file_stack * remove space in log key
Diffstat (limited to 'caddyconfig/caddyfile/dispenser.go')
-rw-r--r--caddyconfig/caddyfile/dispenser.go5
1 files changed, 3 insertions, 2 deletions
diff --git a/caddyconfig/caddyfile/dispenser.go b/caddyconfig/caddyfile/dispenser.go
index 0daed3c..580de4a 100644
--- a/caddyconfig/caddyfile/dispenser.go
+++ b/caddyconfig/caddyfile/dispenser.go
@@ -20,6 +20,7 @@ import (
"io"
"log"
"strconv"
+ "strings"
)
// Dispenser is a type that dispenses tokens, similarly to a lexer,
@@ -398,7 +399,7 @@ func (d *Dispenser) ArgErr() error {
// SyntaxErr creates a generic syntax error which explains what was
// found and what was expected.
func (d *Dispenser) SyntaxErr(expected string) error {
- msg := fmt.Sprintf("%s:%d - Syntax error: Unexpected token '%s', expecting '%s'", d.File(), d.Line(), d.Val(), expected)
+ msg := fmt.Sprintf("%s:%d - Syntax error: Unexpected token '%s', expecting '%s', import chain: ['%s']", d.File(), d.Line(), d.Val(), expected, strings.Join(d.Token().imports, "','"))
return errors.New(msg)
}
@@ -420,7 +421,7 @@ func (d *Dispenser) Errf(format string, args ...any) error {
// WrapErr takes an existing error and adds the Caddyfile file and line number.
func (d *Dispenser) WrapErr(err error) error {
- return fmt.Errorf("%s:%d - Error during parsing: %w", d.File(), d.Line(), err)
+ return fmt.Errorf("%s:%d - Error during parsing: %w, import chain: ['%s']", d.File(), d.Line(), err, strings.Join(d.Token().imports, "','"))
}
// Delete deletes the current token and returns the updated slice