diff options
author | Francis Lavoie <[email protected]> | 2021-04-22 20:29:04 -0400 |
---|---|---|
committer | GitHub <[email protected]> | 2021-04-22 18:29:04 -0600 |
commit | a8d45277ca387ca4769fb4e881d242a5896cca5a (patch) | |
tree | 35dbfdcb7371df0eb6e42806836f271f25b769b6 /replacer.go | |
parent | 1e218e1d2e3986b7cc1cd7335b43f11a4f194b6e (diff) | |
download | caddy-a8d45277ca387ca4769fb4e881d242a5896cca5a.tar.gz caddy-a8d45277ca387ca4769fb4e881d242a5896cca5a.zip |
caddyfile: Fix `import` replacing unrelated placeholders (#4129)
* caddyfile: Fix `import` replacing unrelated placeholders
See https://caddy.community/t/snippet-issue-works-outside-snippet/12231
So it turns out that `NewReplacer()` gives a replacer with some global defaults (like `{env.*}` and some system and time placeholders), which is not ideal when running `import` because we just want to replace `{args.*}` only, and nothing else.
* caddyfile: Add test
Diffstat (limited to 'replacer.go')
-rw-r--r-- | replacer.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/replacer.go b/replacer.go index 29d8e26a7..e6cfdede7 100644 --- a/replacer.go +++ b/replacer.go @@ -36,6 +36,18 @@ func NewReplacer() *Replacer { return rep } +// NewEmptyReplacer returns a new Replacer, +// without the global default replacements. +func NewEmptyReplacer() *Replacer { + rep := &Replacer{ + static: make(map[string]interface{}), + } + rep.providers = []ReplacerFunc{ + rep.fromStatic, + } + return rep +} + // Replacer can replace values in strings. // A default/empty Replacer is not valid; // use NewReplacer to make one. |