mirror of
https://github.com/jimeh/envctl.git
synced 2026-02-19 03:56:39 +00:00
122 lines
3.4 KiB
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=
|
|
}
|