main
1package env
2
3import (
4 "os"
5)
6
7func With(env Vars, callback func()) {
8 original := Vars{}
9
10 for key, value := range env {
11 if val, ok := os.LookupEnv(key); ok {
12 original[key] = val
13 }
14 os.Setenv(key, value)
15 }
16
17 defer func() {
18 for key, _ := range env {
19 os.Unsetenv(key)
20 }
21 for key, value := range original {
22 os.Setenv(key, value)
23 }
24 }()
25
26 callback()
27}