mirror of
https://github.com/golang/go
synced 2024-09-24 01:10:14 -06:00
add os.Getenv()
R=rsc DELTA=51 (50 added, 0 deleted, 1 changed) OCL=15665 CL=15667
This commit is contained in:
parent
4332e0a546
commit
4d12c0e170
@ -3,7 +3,7 @@
|
||||
# license that can be found in the LICENSE file.
|
||||
|
||||
# DO NOT EDIT. Automatically generated by gobuild.
|
||||
# gobuild -m os os_error.go os_file.go os_time.go
|
||||
# gobuild -m os os_error.go os_file.go os_time.go os_env.go
|
||||
O=6
|
||||
GC=$(O)g
|
||||
CC=$(O)c -w
|
||||
@ -36,6 +36,7 @@ O1=\
|
||||
O2=\
|
||||
os_file.$O\
|
||||
os_time.$O\
|
||||
os_env.$O\
|
||||
|
||||
$(PKG): a1 a2
|
||||
a1: $(O1)
|
||||
|
28
src/lib/os/os_env.go
Normal file
28
src/lib/os/os_env.go
Normal file
@ -0,0 +1,28 @@
|
||||
// Copyright 2009 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.
|
||||
|
||||
// Environment variables.
|
||||
// Setenv doesn't exist yet: don't have the run-time hooks yet
|
||||
|
||||
package os
|
||||
|
||||
import os "os"
|
||||
|
||||
export var (
|
||||
ENOENV = NewError("no such environment variable");
|
||||
)
|
||||
|
||||
export func Getenv(s string) (v string, err *Error) {
|
||||
n := len(s);
|
||||
if n == 0 {
|
||||
return "", EINVAL
|
||||
}
|
||||
for i := 0; i < sys.envc(); i++ {
|
||||
e := sys.envv(i);
|
||||
if len(e) > n && e[n] == '=' && e[0 : n] == s {
|
||||
return e[n+1 : len(e)], nil
|
||||
}
|
||||
}
|
||||
return "", ENOENV
|
||||
}
|
26
test/env.go
Normal file
26
test/env.go
Normal file
@ -0,0 +1,26 @@
|
||||
// $G $F.go && $L $F.$A && ./$A.out
|
||||
|
||||
// Copyright 2009 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.
|
||||
|
||||
package main
|
||||
|
||||
import os "os"
|
||||
|
||||
func main() {
|
||||
ga, e0 := os.Getenv("GOARCH");
|
||||
if e0 != nil {
|
||||
print("$GOARCH: ", e0.String(), "\n");
|
||||
sys.exit(1);
|
||||
}
|
||||
if ga != "amd64" {
|
||||
print("$GOARCH=", ga, "\n");
|
||||
sys.exit(1);
|
||||
}
|
||||
xxx, e1 := os.Getenv("DOES_NOT_EXIST");
|
||||
if e1 != os.ENOENV {
|
||||
print("$DOES_NOT_EXIST=", xxx, "; err = ", e1.String(), "\n");
|
||||
sys.exit(1);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user