diff options
Diffstat (limited to 'pkg/server/env')
| -rw-r--r-- | pkg/server/env/env.go | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/pkg/server/env/env.go b/pkg/server/env/env.go index 45650ab..8594e10 100644 --- a/pkg/server/env/env.go +++ b/pkg/server/env/env.go @@ -19,8 +19,8 @@ type Env struct { const namePattern = "[a-zA-Z][a-zA-Z0-9.]*" -var isNamePattern = regexp.MustCompile("^" + namePattern + "$").MatchString -var namePatternRe = regexp.MustCompile("@(" + namePattern + "|{" + namePattern + "})") +var isGoodName = regexp.MustCompile("^" + namePattern + "$").MatchString +var varRe = regexp.MustCompile("@(" + namePattern + "|{" + namePattern + "})") var errBadVariable = errors.New("bad variable name") var errEmptyVariable = errors.New("empty variable") @@ -67,8 +67,8 @@ func (e Env) Get(key string) string { return v } -func (e *env) Set(key string, value string) error { - if !isNamePattern(key) { +func (e Env) Set(key string, value string) error { + if !isGoodName(key) { return errBadVariable } @@ -139,11 +139,13 @@ func (e Env) Eval(s string) string { } for { - if t := namePatternRe.ReplaceAllStringFunc(s, repl); t == s { + t := varRe.ReplaceAllStringFunc(s, repl) + + if t == s { break - } else { - s = t } + + s = t } return s |
