diff options
Diffstat (limited to 'src/pkg/os/env_unix.go')
-rw-r--r-- | src/pkg/os/env_unix.go | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/src/pkg/os/env_unix.go b/src/pkg/os/env_unix.go deleted file mode 100644 index 8aa71e83a..000000000 --- a/src/pkg/os/env_unix.go +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Unix environment variables. - -package os - -import ( - "sync" -) - -// ENOENV is the Error indicating that an environment variable does not exist. -var ENOENV = NewError("no such environment variable") - -var env map[string]string -var once sync.Once - - -func copyenv() { - env = make(map[string]string) - for _, s := range Envs { - for j := 0; j < len(s); j++ { - if s[j] == '=' { - env[s[0:j]] = s[j+1:] - break - } - } - } -} - -var envLock sync.RWMutex - -// Getenverror retrieves the value of the environment variable named by the key. -// It returns the value and an error, if any. -func Getenverror(key string) (value string, err Error) { - once.Do(copyenv) - - if len(key) == 0 { - return "", EINVAL - } - - envLock.RLock() - defer envLock.RUnlock() - - v, ok := env[key] - if !ok { - return "", ENOENV - } - return v, nil -} - -// Getenv retrieves the value of the environment variable named by the key. -// It returns the value, which will be empty if the variable is not present. -func Getenv(key string) string { - v, _ := Getenverror(key) - return v -} - -// Setenv sets the value of the environment variable named by the key. -// It returns an Error, if any. -func Setenv(key, value string) Error { - once.Do(copyenv) - if len(key) == 0 { - return EINVAL - } - - envLock.Lock() - defer envLock.Unlock() - - env[key] = value - setenv_c(key, value) // is a no-op if cgo isn't loaded - return nil -} - -// Clearenv deletes all environment variables. -func Clearenv() { - once.Do(copyenv) // prevent copyenv in Getenv/Setenv - - envLock.Lock() - defer envLock.Unlock() - - env = make(map[string]string) - - // TODO(bradfitz): pass through to C -} - -// Environ returns an array of strings representing the environment, -// in the form "key=value". -func Environ() []string { - once.Do(copyenv) - envLock.RLock() - defer envLock.RUnlock() - a := make([]string, len(env)) - i := 0 - for k, v := range env { - a[i] = k + "=" + v - i++ - } - return a -} - -// TempDir returns the default directory to use for temporary files. -func TempDir() string { - dir := Getenv("TMPDIR") - if dir == "" { - dir = "/tmp" - } - return dir -} |