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