github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/utils/envvars/envvars.go (about) 1 package envvars 2 3 import ( 4 "os" 5 ) 6 7 // All populates a map of environmental variables 8 func All(m map[string]interface{}) { 9 all(os.Environ(), m) 10 } 11 12 func all(envs []string, m map[string]interface{}) { 13 for _, env := range envs { 14 key, val := Split(env) 15 m[key] = val 16 } 17 } 18 19 func Split(env string) (string, string) { 20 if env == "" || env == "=" { 21 return "", "" 22 } 23 24 var i int 25 for ; i < len(env); i++ { 26 if env[i] == '=' { 27 break 28 } 29 } 30 31 switch i { 32 case 0: 33 return "", env[1:] 34 case len(env): 35 return env, "" 36 default: 37 return env[:i], env[i+1:] 38 } 39 }