summaryrefslogtreecommitdiff
path: root/pkg/server/env.go
diff options
context:
space:
mode:
authorMikhail Osipov <mike.osipov@gmail.com>2020-02-23 05:20:04 +0300
committerMikhail Osipov <mike.osipov@gmail.com>2020-02-23 05:20:04 +0300
commitde868930e2301b68a50bde088dd83dc575b72c54 (patch)
tree9f3df0bbdb5035100311fe7194aef66186478ec4 /pkg/server/env.go
parent7c7fafefef94c5fb8bfe319e7745d80a1e88205d (diff)
prepare to auth
Diffstat (limited to 'pkg/server/env.go')
-rw-r--r--pkg/server/env.go68
1 files changed, 6 insertions, 62 deletions
diff --git a/pkg/server/env.go b/pkg/server/env.go
index 818310c..7b6b36d 100644
--- a/pkg/server/env.go
+++ b/pkg/server/env.go
@@ -1,63 +1,9 @@
package server
-import (
- "regexp"
-)
-
-type env struct {
- m map[string]string
-}
-
-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) {
- v, ok := e.m[key]
-
- return v, ok
-}
-
-func (e *env) set(key string, value string) {
- if e.m == nil {
- e.m = make(map[string]string)
- }
-
- e.m[key] = value
-}
-
-func (e *env) del(key string) bool {
- if e.m == nil {
- return false
- }
-
- if _, ok := e.m[key]; !ok {
- return false
- }
-
- delete(e.m, key)
-
- return true
-}
-
-func (e *env) each(f func (string, string) bool) {
- for k, v := range e.m {
- if !f(k, v) {
- break
- }
- }
-}
-
-func (e *env) clear() {
- e.m = nil
-}
-
func varGet(r *request) {
r.expect(1)
- if v, ok := r.c.s.env.get(r.args[0]); ok {
+ if v, ok := r.c.s.env.Find(r.args[0]); ok {
r.Print(v)
} else {
r.Fatal("no such variable")
@@ -67,30 +13,28 @@ func varGet(r *request) {
func varSet(r *request) {
r.expect(2)
- if !isValidVarName(r.args[0]) {
- r.Fatal("bad variable name")
+ if err := r.c.s.env.Set(r.args[0], r.args[1]); err != nil {
+ r.Fatal(err)
}
-
- r.c.s.env.set(r.args[0], r.args[1])
}
func varDel(r *request) {
r.expect(1)
- if !r.c.s.env.del(r.args[0]) {
+ if !r.c.s.env.Del(r.args[0]) {
r.Fatal("no such variable")
}
}
func varShow(r *request) {
- r.c.s.env.each(func (k string, v string) bool {
+ r.c.s.env.Each(func (k string, v string) bool {
r.Println(k, v)
return true
})
}
func varClear(r *request) {
- r.c.s.env.clear()
+ r.c.s.env.Clear()
}
func init() {