diff options
| author | Mikhail Osipov <mike.osipov@gmail.com> | 2020-02-23 16:01:23 +0300 |
|---|---|---|
| committer | Mikhail Osipov <mike.osipov@gmail.com> | 2020-02-23 16:01:23 +0300 |
| commit | 4bbdb1b34d9f7e71c0faf6f1943e6bb4ce303af1 (patch) | |
| tree | 99cd0a2becd48025a225399ad167a963f9f5ec90 /pkg/server/env/env.go | |
| parent | de868930e2301b68a50bde088dd83dc575b72c54 (diff) | |
make auth (chap)
Diffstat (limited to 'pkg/server/env/env.go')
| -rw-r--r-- | pkg/server/env/env.go | 26 |
1 files changed, 22 insertions, 4 deletions
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 |
