29 lines
567 B
Go
29 lines
567 B
Go
package main
|
|
|
|
import (
|
|
sr "tildegit.org/tjp/sliderule"
|
|
)
|
|
|
|
func routes(server Server) *sr.Router {
|
|
router := &sr.Router{}
|
|
for _, route := range server.Routes {
|
|
addRoute(server, router, route)
|
|
}
|
|
return router
|
|
}
|
|
|
|
func addRoute(server Server, router *sr.Router, route RouteDirective) {
|
|
switch server.Type {
|
|
case "gopher":
|
|
addGopherRoute(router, route)
|
|
case "gemini":
|
|
addGeminiRoute(router, route)
|
|
case "spartan":
|
|
addSpartanRoute(router, route)
|
|
case "nex":
|
|
addNexRoute(router, route)
|
|
default:
|
|
panic("invalid server type '" + server.Type + "'")
|
|
}
|
|
}
|