aboutsummaryrefslogtreecommitdiffhomepage
path: root/replacer.go
diff options
context:
space:
mode:
authorFrancis Lavoie <[email protected]>2021-04-22 20:29:04 -0400
committerGitHub <[email protected]>2021-04-22 18:29:04 -0600
commita8d45277ca387ca4769fb4e881d242a5896cca5a (patch)
tree35dbfdcb7371df0eb6e42806836f271f25b769b6 /replacer.go
parent1e218e1d2e3986b7cc1cd7335b43f11a4f194b6e (diff)
downloadcaddy-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.go12
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.