gopkg.in/constabulary/gb.v0@v0.4.4/cmd/env.go (about) 1 package cmd 2 3 import ( 4 "fmt" 5 "log" 6 "os" 7 "strings" 8 ) 9 10 // MustGetwd returns current working directory and fails otherwise 11 func MustGetwd() string { 12 wd, err := os.Getwd() 13 if err != nil { 14 log.Fatalf("unable to determine current working directory: %v", err) 15 } 16 return wd 17 } 18 19 // MergeEnv merges args into env, overwriting entries. 20 func MergeEnv(env []string, args map[string]string) []string { 21 m := make(map[string]string) 22 for _, e := range env { 23 v := strings.SplitN(e, "=", 2) 24 m[v[0]] = v[1] 25 } 26 for k, v := range args { 27 m[k] = v 28 } 29 env = make([]string, 0, len(m)) 30 for k, v := range m { 31 env = append(env, fmt.Sprintf("%s=%s", k, v)) 32 } 33 return env 34 }