summaryrefslogtreecommitdiff
path: root/servers.go
diff options
context:
space:
mode:
authortjpcc <tjp@ctrl-c.club>2023-09-28 08:08:48 -0600
committertjpcc <tjp@ctrl-c.club>2023-10-09 08:47:37 -0600
commit6e1c25af361dde4c063eccbf769e966df4b65f23 (patch)
treed28044cf2db246555deda8db395f2f0a7e786590 /servers.go
parentb4f45f7c654e87bda6d5e7effb6ac5b5feb29ce0 (diff)
config file refactor
Diffstat (limited to 'servers.go')
-rw-r--r--servers.go39
1 files changed, 39 insertions, 0 deletions
diff --git a/servers.go b/servers.go
new file mode 100644
index 0000000..285b69c
--- /dev/null
+++ b/servers.go
@@ -0,0 +1,39 @@
+package main
+
+import (
+ sr "tildegit.org/tjp/sliderule"
+)
+
+func buildServers(config *Configuration) ([]sr.Server, error) {
+ result := []sr.Server{}
+
+ geminis := []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 "gemini":
+ geminis = append(geminis, server)
+ }
+ }
+
+ if len(geminis) > 0 {
+ srvs, err := buildGeminiServers(geminis, config)
+ if err != nil {
+ return nil, err
+ }
+ result = append(result, srvs...)
+ }
+
+ return result, nil
+}