summaryrefslogtreecommitdiff
path: root/pkg/server/env.go
diff options
context:
space:
mode:
authorMikhail Osipov <mike.osipov@gmail.com>2020-02-17 11:56:43 +0300
committerMikhail Osipov <mike.osipov@gmail.com>2020-02-19 23:51:31 +0300
commitbd5339bff8bf5f5e877e94dfef265a22570a69c7 (patch)
tree5902df7a9f21c00d9c414f6b0c2b79aadfd84752 /pkg/server/env.go
parentdf935315c7201b7d42eb361b3ac3d36fe83e53e6 (diff)
first working version
Diffstat (limited to 'pkg/server/env.go')
-rw-r--r--pkg/server/env.go35
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")
+}