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  }