Files
envctl/envctl_example_test.go

122 lines
3.4 KiB
Go

package envctl_test
import (
"fmt"
"os"
"github.com/jimeh/envctl"
)
func Example_basic() {
os.Setenv("PORT", "8080")
envctl.With(map[string]string{"BIND": "0.0.0.0", "PORT": "3000"}, func() {
fmt.Println(os.Getenv("BIND") + ":" + os.Getenv("PORT"))
})
fmt.Println(os.Getenv("BIND") + ":" + os.Getenv("PORT"))
// Output:
// 0.0.0.0:3000
// :8080
}
func ExampleWith() {
// existing environment variables
os.Setenv("MYAPP_HOSTNAME", "myapp.com")
os.Setenv("MYAPP_PORT", "80")
fmt.Println("Before:")
fmt.Printf(" - MYAPP_HOSTNAME=%s\n", os.Getenv("MYAPP_HOSTNAME"))
fmt.Printf(" - MYAPP_PORT=%s\n", os.Getenv("MYAPP_PORT"))
fmt.Printf(" - MYAPP_THEME=%s\n", os.Getenv("MYAPP_THEME"))
fmt.Printf(" - MYAPP_TESTING=%s\n", os.Getenv("MYAPP_TESTING"))
// temporary environment variables
env := map[string]string{
"MYAPP_HOSTNAME": "testing-myapp.test",
"MYAPP_TESTING": "unit",
}
envctl.With(env, func() {
os.Setenv("MYAPP_THEME", "dark")
fmt.Println("Inside func:")
fmt.Printf(" - MYAPP_HOSTNAME=%s\n", os.Getenv("MYAPP_HOSTNAME"))
fmt.Printf(" - MYAPP_PORT=%s\n", os.Getenv("MYAPP_PORT"))
fmt.Printf(" - MYAPP_THEME=%s\n", os.Getenv("MYAPP_THEME"))
fmt.Printf(" - MYAPP_TESTING=%s\n", os.Getenv("MYAPP_TESTING"))
})
// original environment variables restored
fmt.Println("After:")
fmt.Printf(" - MYAPP_HOSTNAME=%s\n", os.Getenv("MYAPP_HOSTNAME"))
fmt.Printf(" - MYAPP_PORT=%s\n", os.Getenv("MYAPP_PORT"))
fmt.Printf(" - MYAPP_THEME=%s\n", os.Getenv("MYAPP_THEME"))
fmt.Printf(" - MYAPP_TESTING=%s\n", os.Getenv("MYAPP_TESTING"))
// Output:
// Before:
// - MYAPP_HOSTNAME=myapp.com
// - MYAPP_PORT=80
// - MYAPP_THEME=
// - MYAPP_TESTING=
// Inside func:
// - MYAPP_HOSTNAME=testing-myapp.test
// - MYAPP_PORT=80
// - MYAPP_THEME=dark
// - MYAPP_TESTING=unit
// After:
// - MYAPP_HOSTNAME=myapp.com
// - MYAPP_PORT=80
// - MYAPP_THEME=
// - MYAPP_TESTING=
}
func ExampleWithClean() {
// existing environment variables
os.Setenv("MYAPP_HOSTNAME", "myapp.com")
os.Setenv("MYAPP_PORT", "80")
fmt.Println("Before:")
fmt.Printf(" - MYAPP_HOSTNAME=%s\n", os.Getenv("MYAPP_HOSTNAME"))
fmt.Printf(" - MYAPP_PORT=%s\n", os.Getenv("MYAPP_PORT"))
fmt.Printf(" - MYAPP_THEME=%s\n", os.Getenv("MYAPP_THEME"))
fmt.Printf(" - MYAPP_TESTING=%s\n", os.Getenv("MYAPP_TESTING"))
// temporary environment variables
env := map[string]string{
"MYAPP_HOSTNAME": "testing-myapp.test",
"MYAPP_TESTING": "unit",
}
envctl.WithClean(env, func() {
os.Setenv("MYAPP_THEME", "dark")
fmt.Println("Inside func:")
fmt.Printf(" - MYAPP_HOSTNAME=%s\n", os.Getenv("MYAPP_HOSTNAME"))
fmt.Printf(" - MYAPP_PORT=%s\n", os.Getenv("MYAPP_PORT"))
fmt.Printf(" - MYAPP_THEME=%s\n", os.Getenv("MYAPP_THEME"))
fmt.Printf(" - MYAPP_TESTING=%s\n", os.Getenv("MYAPP_TESTING"))
})
// original environme
fmt.Println("After:")
fmt.Printf(" - MYAPP_HOSTNAME=%s\n", os.Getenv("MYAPP_HOSTNAME"))
fmt.Printf(" - MYAPP_PORT=%s\n", os.Getenv("MYAPP_PORT"))
fmt.Printf(" - MYAPP_THEME=%s\n", os.Getenv("MYAPP_THEME"))
fmt.Printf(" - MYAPP_TESTING=%s\n", os.Getenv("MYAPP_TESTING"))
// Output:
// Before:
// - MYAPP_HOSTNAME=myapp.com
// - MYAPP_PORT=80
// - MYAPP_THEME=
// - MYAPP_TESTING=
// Inside func:
// - MYAPP_HOSTNAME=testing-myapp.test
// - MYAPP_PORT=
// - MYAPP_THEME=dark
// - MYAPP_TESTING=unit
// After:
// - MYAPP_HOSTNAME=myapp.com
// - MYAPP_PORT=80
// - MYAPP_THEME=
// - MYAPP_TESTING=
}