diff options
| author | Mikhail Osipov <mike.osipov@gmail.com> | 2020-01-24 04:05:22 +0300 |
|---|---|---|
| committer | Mikhail Osipov <mikhail.osipov@kaspersky.com> | 2020-01-24 14:15:12 +0300 |
| commit | 774028525cf003e284071685e2b697ad305086e2 (patch) | |
| tree | e6b431082138a79f9dad7dd844adc7c4a3eb7015 /pkg/server/env.go | |
| parent | ab3e3860cbb836203ac707ea395af9902d29ad39 (diff) | |
eval query with env
Diffstat (limited to 'pkg/server/env.go')
| -rw-r--r-- | pkg/server/env.go | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/pkg/server/env.go b/pkg/server/env.go index 7fc338d..2f6937e 100644 --- a/pkg/server/env.go +++ b/pkg/server/env.go @@ -10,6 +10,7 @@ func init() { newCmd(envSet, "env", "set") newCmd(envDel, "env", "del") newCmd(envShow, "env", "show") + newCmd(envClear, "env", "clear") } type env struct { @@ -17,7 +18,11 @@ type env struct { sync.Mutex } -var isValidVarName = regexp.MustCompile("^[a-zA-Z][a-zA-Z0-9]*$").MatchString +const varNamePattern = "[a-zA-Z][a-zA-Z0-9]*" + +var isValidVarName = regexp.MustCompile("^" + varNamePattern + "$").MatchString + +var varTokenRe = regexp.MustCompile("%" + varNamePattern) func (e *env) get(key string) (string, bool) { e.Lock() @@ -67,6 +72,13 @@ func (e *env) each(f func (string, string) bool) { } } +func (e *env) clear() { + e.Lock() + defer e.Unlock() + + e.m = nil +} + func envGet(r *request) { r.expect(1) @@ -96,10 +108,12 @@ func envDel(r *request) { } func envShow(r *request) { - r.expect(0) - r.c.s.env.each(func (k string, v string) bool { r.Println(k, v) return true }) } + +func envClear(r *request) { + r.c.s.env.clear() +} |
