diff options
Diffstat (limited to 'pkg/server/env.go')
| -rw-r--r-- | pkg/server/env.go | 35 |
1 files changed, 9 insertions, 26 deletions
diff --git a/pkg/server/env.go b/pkg/server/env.go index 1618c62..818310c 100644 --- a/pkg/server/env.go +++ b/pkg/server/env.go @@ -2,41 +2,25 @@ package server import ( "regexp" - "sync" ) -func init() { - newCmd(varGet, "var", "get") - newCmd(varSet, "var", "set") - newCmd(varDel, "var", "del") - newCmd(varShow, "var", "show") - newCmd(varClear, "var", "clear") -} - type env struct { m map[string]string - sync.Mutex } const varNamePattern = "[a-zA-Z][a-zA-Z0-9]*" var isValidVarName = regexp.MustCompile("^" + varNamePattern + "$").MatchString -var varTokenRe = regexp.MustCompile("%" + varNamePattern) +var varTokenRe = regexp.MustCompile("@" + varNamePattern) func (e *env) get(key string) (string, bool) { - e.Lock() - defer e.Unlock() - v, ok := e.m[key] return v, ok } func (e *env) set(key string, value string) { - e.Lock() - defer e.Unlock() - if e.m == nil { e.m = make(map[string]string) } @@ -45,9 +29,6 @@ func (e *env) set(key string, value string) { } func (e *env) del(key string) bool { - e.Lock() - defer e.Unlock() - if e.m == nil { return false } @@ -62,9 +43,6 @@ func (e *env) del(key string) bool { } func (e *env) each(f func (string, string) bool) { - e.Lock() - defer e.Unlock() - for k, v := range e.m { if !f(k, v) { break @@ -73,9 +51,6 @@ func (e *env) each(f func (string, string) bool) { } func (e *env) clear() { - e.Lock() - defer e.Unlock() - e.m = nil } @@ -117,3 +92,11 @@ func varShow(r *request) { func varClear(r *request) { r.c.s.env.clear() } + +func init() { + newCmd(varGet, "var get") + newCmd(varSet, "var set") + newCmd(varDel, "var del") + newCmd(varShow, "var show") + newCmd(varClear, "var clear") +} |
