go-scopes/examples/demo/etc/etc.go

43 lines
1,008 B
Go

package etc
import (
lib "git.sr.ht/~cco/go-scopes"
"git.sr.ht/~cco/go-scopes/app"
"git.sr.ht/~cco/go-scopes/config"
"git.sr.ht/~cco/go-scopes/logging"
"git.sr.ht/~cco/go-scopes/server"
)
func Config() lib.Config {
ovr := Overrides().Use
b := config.Base
app_c := &app.Cfg{
BaseCfg: b("dummy", app.Start),
Home: ovr(".", HOME),
Logging: &logging.Cfg{
Logfile: ovr("log/scopes.log", LOGFILE),
Level: ovr("info", LOGLEVEL),
},
}
server_c := b("server", server.Start(
(&server.Cfg{Port: ovr("8123", SERVER_PORT)}).
AddRoute("/docs", server.FileServer(ovr("html", DOCROOT))).
AddRoute("/api", server.MsgHandler().
AddActionProc("demo", server.Async, "test-receiver"))))
app_c.Add(server_c)
return app_c
}
// collect here the names of fields that may be overridden via
// explicit Override() or SCOPES_* environment settings.
const (
HOME = "home"
LOGFILE = "logfile"
LOGLEVEL = "loglevel"
SERVER_PORT = "server_port"
DOCROOT = "docroot"
)