summaryrefslogtreecommitdiff
path: root/pkg/server/env.go
diff options
context:
space:
mode:
authorMikhail Osipov <mike.osipov@gmail.com>2020-01-24 04:05:22 +0300
committerMikhail Osipov <mikhail.osipov@kaspersky.com>2020-01-24 14:15:12 +0300
commit774028525cf003e284071685e2b697ad305086e2 (patch)
treee6b431082138a79f9dad7dd844adc7c4a3eb7015 /pkg/server/env.go
parentab3e3860cbb836203ac707ea395af9902d29ad39 (diff)
eval query with env
Diffstat (limited to 'pkg/server/env.go')
-rw-r--r--pkg/server/env.go20
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()
+}