func missingNets(defined common.PrivateNetList, loaded []activeNet) []string { diff := make(map[string]struct{}) for _, n := range defined.StringsOnlyNames() { if n != "all" { diff[n] = struct{}{} } } for _, an := range loaded { delete(diff, an.conf.Name) } missing := []string{} for n, _ := range diff { missing = append(missing, n) } return missing }
func loadUserNets(localConfig string, netsLoadList common.PrivateNetList) ([]activeNet, error) { userNetPath := filepath.Join(localConfig, UserNetPathSuffix) log.Printf("Loading networks from %v\n", userNetPath) files, err := listFiles(userNetPath) if err != nil { return nil, err } sort.Strings(files) nets := make([]activeNet, 0, len(files)) for _, filename := range files { filepath := filepath.Join(userNetPath, filename) if !strings.HasSuffix(filepath, ".conf") { continue } n, err := loadNet(filepath) if err != nil { return nil, err } if !(netsLoadList.All() || netsLoadList.Specific(n.conf.Name)) { continue } // "default" is slightly special if n.conf.Name == "default" { log.Printf(`Overriding "default" network with %v`, filename) } if netExists(nets, n.conf.Name) { log.Printf("%q network already defined, ignoring %v", n.conf.Name, filename) continue } nets = append(nets, *n) } return nets, nil }