diff options
Diffstat (limited to 'vendor/github.com/xlgmokha/x/pkg/env/with.go')
| -rw-r--r-- | vendor/github.com/xlgmokha/x/pkg/env/with.go | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/vendor/github.com/xlgmokha/x/pkg/env/with.go b/vendor/github.com/xlgmokha/x/pkg/env/with.go new file mode 100644 index 00000000..6efeed46 --- /dev/null +++ b/vendor/github.com/xlgmokha/x/pkg/env/with.go @@ -0,0 +1,27 @@ +package env + +import ( + "os" +) + +func With(env Vars, callback func()) { + original := Vars{} + + for key, value := range env { + if val, ok := os.LookupEnv(key); ok { + original[key] = val + } + os.Setenv(key, value) + } + + defer func() { + for key, _ := range env { + os.Unsetenv(key) + } + for key, value := range original { + os.Setenv(key, value) + } + }() + + callback() +} |
