package main import ( sr "tildegit.org/tjp/sliderule" ) func buildServers(config *Configuration) ([]sr.Server, error) { result := []sr.Server{} geminis := []Server{} spartans := []Server{} for _, server := range config.Servers { switch server.Type { case "gopher": srv, err := buildGopherServer(server, config) if err != nil { return nil, err } result = append(result, srv) case "finger": srv, err := buildFingerServer(server, config) if err != nil { return nil, err } result = append(result, srv) case "nex": srv, err := buildNexServer(server, config) if err != nil { return nil, err } result = append(result, srv) case "gemini": geminis = append(geminis, server) case "spartan": spartans = append(spartans, server) } } if len(geminis) > 0 { srvs, err := buildGeminiServers(geminis, config) if err != nil { return nil, err } result = append(result, srvs...) } if len(spartans) > 0 { srvs, err := buildSpartanServers(spartans, config) if err != nil { return nil, err } result = append(result, srvs...) } return result, nil }