diff options
| author | Dave Henderson <dhenderson@gmail.com> | 2017-07-31 22:50:41 -0400 |
|---|---|---|
| committer | Dave Henderson <dhenderson@gmail.com> | 2017-07-31 23:10:01 -0400 |
| commit | f4a7377c5d3a22c19af32b549827f8a0509a76ab (patch) | |
| tree | cb690698c633491bff4d2007bab932bd3e51862f /funcs | |
| parent | 5a8845db8d22c1a74ae6f95654aedb2e5a9da83a (diff) | |
Moving getenv to separate package
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'funcs')
| -rw-r--r-- | funcs/env.go | 34 | ||||
| -rw-r--r-- | funcs/env_test.go | 16 |
2 files changed, 50 insertions, 0 deletions
diff --git a/funcs/env.go b/funcs/env.go new file mode 100644 index 00000000..40c10ff9 --- /dev/null +++ b/funcs/env.go @@ -0,0 +1,34 @@ +package funcs + +import ( + "sync" + + "github.com/hairyhenderson/gomplate/env" +) + +var ( + ef *EnvFuncs + efInit sync.Once +) + +// EnvNS - the Env namespace +func EnvNS() *EnvFuncs { + efInit.Do(func() { ef = &EnvFuncs{} }) + return ef +} + +// AddEnvFuncs - +func AddEnvFuncs(f map[string]interface{}) { + f["env"] = EnvNS + + // global aliases - for backwards compatibility + f["getenv"] = EnvNS().Getenv +} + +// EnvFuncs - +type EnvFuncs struct{} + +// Getenv - +func (f *EnvFuncs) Getenv(key string, def ...string) string { + return env.Getenv(key, def...) +} diff --git a/funcs/env_test.go b/funcs/env_test.go new file mode 100644 index 00000000..95db230b --- /dev/null +++ b/funcs/env_test.go @@ -0,0 +1,16 @@ +package funcs + +import ( + "os" + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestEnvGetenv(t *testing.T) { + ef := &EnvFuncs{} + expected := os.Getenv("USER") + assert.Equal(t, expected, ef.Getenv("USER")) + + assert.Equal(t, "foo", ef.Getenv("bogusenvvar", "foo")) +} |
