| "veyron.io/veyron/veyron2/vlog" |
| func newLogfile(prefix, name string) (*os.File, error) { |
| nameHash := adler32.Checksum([]byte(name)) |
| f, err := ioutil.TempFile("", fmt.Sprintf("__modules__%s-%x", prefix, nameHash)) |
| func outputFromFile(f *os.File, out io.Writer) { |
| if f, err = os.Open(fName); err != nil { |
| vlog.VI(1).Infof("failed to open %q: %s\n", fName, err) |
| // envSliceToMap returns a map representation of a string slive |
| // of environment variables. |
| func envSliceToMap(env []string) map[string]string { |
| m := make(map[string]string) |
| for _, osv := range env { |
| parts := strings.SplitN(osv, "=", 2) |
| // mergeMaps merges two maps, a & b, with b taking preference over a. |
| func mergeMaps(a, b map[string]string) map[string]string { |
| merged := make(map[string]string) |