diff options
Diffstat (limited to 'libgo/go/syscall/env_plan9.go')
-rw-r--r-- | libgo/go/syscall/env_plan9.go | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/libgo/go/syscall/env_plan9.go b/libgo/go/syscall/env_plan9.go deleted file mode 100644 index e403a25..0000000 --- a/libgo/go/syscall/env_plan9.go +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright 2011 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. - -// Plan 9 environment variables. - -package syscall - -import ( - "errors" -) - -var ( - errZeroLengthKey = errors.New("zero length key") - errShortWrite = errors.New("i/o count too small") -) - -func readenv(key string) (string, error) { - fd, err := open("/env/"+key, O_RDONLY) - if err != nil { - return "", err - } - defer Close(fd) - l, _ := Seek(fd, 0, 2) - Seek(fd, 0, 0) - buf := make([]byte, l) - n, err := Read(fd, buf) - if err != nil { - return "", err - } - if n > 0 && buf[n-1] == 0 { - buf = buf[:n-1] - } - return string(buf), nil -} - -func writeenv(key, value string) error { - fd, err := create("/env/"+key, O_RDWR, 0666) - if err != nil { - return err - } - defer Close(fd) - b := []byte(value) - n, err := Write(fd, b) - if err != nil { - return err - } - if n != len(b) { - return errShortWrite - } - return nil -} - -func Getenv(key string) (value string, found bool) { - if len(key) == 0 { - return "", false - } - v, err := readenv(key) - if err != nil { - return "", false - } - return v, true -} - -func Setenv(key, value string) error { - if len(key) == 0 { - return errZeroLengthKey - } - err := writeenv(key, value) - if err != nil { - return err - } - return nil -} - -func Clearenv() { - // Creating a new environment group using rfork(RFCENVG) can race - // with access to files in /env (e.g. from Setenv or Getenv). - // Remove all environment variables in current environment group instead. - fd, err := open("/env", O_RDONLY) - if err != nil { - return - } - defer Close(fd) - files, err := readdirnames(fd) - if err != nil { - return - } - for _, key := range files { - Remove("/env/" + key) - } -} - -func Unsetenv(key string) error { - if len(key) == 0 { - return errZeroLengthKey - } - Remove("/env/" + key) - return nil -} - -func Environ() []string { - fd, err := open("/env", O_RDONLY) - if err != nil { - return nil - } - defer Close(fd) - files, err := readdirnames(fd) - if err != nil { - return nil - } - ret := make([]string, 0, len(files)) - - for _, key := range files { - v, err := readenv(key) - if err != nil { - continue - } - ret = append(ret, key+"="+v) - } - return ret -} |