package server import ( lib "git.sr.ht/~cco/go-scopes" "git.sr.ht/~cco/go-scopes/config" "git.sr.ht/~cco/go-scopes/core" ) type Cfg struct { *config.BaseCfg Port string Addr string routes []routeCfg } func (c *Cfg) AddRoute(path string, spec routeSpec, methods ...string) { rcfg := routeCfg{ methods: methods, path: path, spec: spec, } if methods == nil { rcfg.methods = []string{"GET", "POST"} } c.routes = append(c.routes, rcfg) } type routeCfg struct { methods []string path string spec routeSpec } type routeSpec interface{} type fsSpec struct { docRoot string } func FileServer(docRoot string) *fsSpec { return &fsSpec{docRoot} } func MsgHandler() lib.Config { return config.Base("", core.Start) }