From 4bbdb1b34d9f7e71c0faf6f1943e6bb4ce303af1 Mon Sep 17 00:00:00 2001 From: Mikhail Osipov Date: Sun, 23 Feb 2020 16:01:23 +0300 Subject: make auth (chap) --- pkg/server/env/env.go | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'pkg/server/env/env.go') diff --git a/pkg/server/env/env.go b/pkg/server/env/env.go index ab47ae8..affb4ef 100644 --- a/pkg/server/env/env.go +++ b/pkg/server/env/env.go @@ -15,7 +15,7 @@ type Env struct { *env } -const namePattern = "[a-zA-Z][a-zA-Z0-9]*" +const namePattern = "[a-zA-Z][a-zA-Z0-9.]*" var isNamePattern = regexp.MustCompile("^" + namePattern + "$").MatchString var namePatternRe = regexp.MustCompile("@" + namePattern) @@ -25,6 +25,26 @@ func New() Env { return Env{new(env)} } +func (e *env) init() { + if e.m == nil { + e.m = make(map[string]string) + } +} + +func (e *env) Copy() Env { + c := New() + + if len(e.m) > 0 { + c.init() + + for k, v := range e.m { + c.m[k] = v + } + } + + return c +} + func (e *env) Find(key string) (string, bool) { e.Lock() defer e.Unlock() @@ -47,9 +67,7 @@ func (e *env) Set(key string, value string) error { e.Lock() defer e.Unlock() - if e.m == nil { - e.m = make(map[string]string) - } + e.init() e.m[key] = value -- cgit v1.2.3-70-g09d2