diff --git a/os/genv/genv.go b/os/genv/genv.go index 397d5c17c..815552e36 100644 --- a/os/genv/genv.go +++ b/os/genv/genv.go @@ -58,6 +58,16 @@ func Set(key, value string) error { return os.Setenv(key, value) } +// SetMap sets the environment variables using map. +func SetMap(m map[string]string) error { + for k, v := range m { + if err := os.Setenv(k, v); err != nil { + return err + } + } + return nil +} + // Contains checks whether the environment variable named exists. func Contains(key string) bool { _, ok := os.LookupEnv(key) diff --git a/os/genv/genv_test.go b/os/genv/genv_test.go index f7c13d2aa..39ca57fae 100644 --- a/os/genv/genv_test.go +++ b/os/genv/genv_test.go @@ -7,6 +7,7 @@ package genv_test import ( + "github.com/gogf/gf/frame/g" "github.com/gogf/gf/os/gcmd" "os" "testing" @@ -64,6 +65,17 @@ func Test_GEnv_Set(t *testing.T) { }) } +func Test_GEnv_SetMap(t *testing.T) { + gtest.C(t, func(t *gtest.T) { + err := genv.SetMap(g.MapStrStr{ + "K1": "TEST1", + "K2": "TEST2", + }) + t.Assert(err, nil) + t.AssertEQ(os.Getenv("K1"), "TEST1") + t.AssertEQ(os.Getenv("K2"), "TEST2") + }) +} func Test_GEnv_Build(t *testing.T) { gtest.C(t, func(t *gtest.T) { s := genv.Build(map[string]string{