package runtime
import "unsafe"
func gogetenv (key string ) string {
env := environ ()
if env == nil {
throw ("getenv before env init" )
}
for _ , s := range env {
if len (s ) > len (key ) && s [len (key )] == '=' && envKeyEqual (s [:len (key )], key ) {
return s [len (key )+1 :]
}
}
return ""
}
func envKeyEqual (a , b string ) bool {
if GOOS == "windows" {
for i := 0 ; i < len (a ); i ++ {
ca , cb := a [i ], b [i ]
if ca == cb || lowerASCII (ca ) == lowerASCII (cb ) {
continue
}
return false
}
return true
}
return a == b
}
func lowerASCII (c byte ) byte {
if 'A' <= c && c <= 'Z' {
return c + ('a' - 'A' )
}
return c
}
var _cgo_setenv unsafe .Pointer
var _cgo_unsetenv unsafe .Pointer
func setenv_c (k string , v string ) {
if _cgo_setenv == nil {
return
}
arg := [2 ]unsafe .Pointer {cstring (k ), cstring (v )}
asmcgocall (_cgo_setenv , unsafe .Pointer (&arg ))
}
func unsetenv_c (k string ) {
if _cgo_unsetenv == nil {
return
}
arg := [1 ]unsafe .Pointer {cstring (k )}
asmcgocall (_cgo_unsetenv , unsafe .Pointer (&arg ))
}
func cstring (s string ) unsafe .Pointer {
p := make ([]byte , len (s )+1 )
copy (p , s )
return unsafe .Pointer (&p [0 ])
}
The pages are generated with Golds v0.6.7 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds .