Commit e8c0d0f2 authored by Rob Pike's avatar Rob Pike

os: add LookupEnv, like Getenv but reports presence

Fixes #9676.

Change-Id: I32fe474cdfa09aff91daa4b10ac4df28ffdaa649
Reviewed-on: https://go-review.googlesource.com/9741Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
parent 97fd7b07
......@@ -81,6 +81,15 @@ func Getenv(key string) string {
return v
}
// LookupEnv retrieves the value of the environment variable named
// by the key. If the variable is present in the environment the
// value (which may be empty) is returned and the boolean is true.
// Otherwise the returned value will be empty and the boolean will
// be false.
func LookupEnv(key string) (string, bool) {
return syscall.Getenv(key)
}
// Setenv sets the value of the environment variable named by the key.
// It returns an error, if any.
func Setenv(key, value string) error {
......
......@@ -94,3 +94,15 @@ func TestUnsetenv(t *testing.T) {
t.Fatal("Unsetenv didn't clear TestUnsetenv")
}
}
func TestLookupEnv(t *testing.T) {
value, ok := LookupEnv("GOROOT") // Should be set.
if !ok {
t.Errorf("GOROOT is not set")
}
const v = "Variable That Does Not Exist"
value, ok = LookupEnv(v) // Should not be set.
if ok || value != "" {
t.Errorf("%s is set: %q", v, value)
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment