summaryrefslogtreecommitdiff
path: root/pkg/server/env/env.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/server/env/env.go')
-rw-r--r--pkg/server/env/env.go16
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