X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/2dec79b036796df75885abf4e1a977958f9c541d..a03ce4056e503710caa1e95d315b92fb74c96abf:/services/ws/main.go diff --git a/services/ws/main.go b/services/ws/main.go index ce56d0d5fd..b2b86705cc 100644 --- a/services/ws/main.go +++ b/services/ws/main.go @@ -2,32 +2,40 @@ package main import ( "flag" - "log" - "net/http" - "time" + "fmt" "git.curoverse.com/arvados.git/sdk/go/config" + "git.curoverse.com/arvados.git/sdk/go/ctxlog" ) +var logger = ctxlog.FromContext + func main() { + log := logger(nil) + configPath := flag.String("config", "/etc/arvados/ws/ws.yml", "`path` to config file") - cfg := DefaultConfig() + dumpConfig := flag.Bool("dump-config", false, "show current configuration and exit") + cfg := defaultConfig() + flag.Parse() + err := config.LoadFile(&cfg, *configPath) if err != nil { log.Fatal(err) } - srv := &http.Server{ - Addr: cfg.Listen, - ReadTimeout: time.Minute, - WriteTimeout: time.Minute, - MaxHeaderBytes: 1 << 20, - Handler: &router{ - EventSource: (&pgEventSource{ - PgConfig: cfg.Postgres, - QueueSize: cfg.ServerEventQueue, - }).EventSource(), - }, + ctxlog.SetLevel(cfg.LogLevel) + ctxlog.SetFormat(cfg.LogFormat) + + if *dumpConfig { + txt, err := config.Dump(&cfg) + if err != nil { + log.Fatal(err) + } + fmt.Print(string(txt)) + return } - log.Fatal(srv.ListenAndServe()) + + log.Info("started") + srv := &server{wsConfig: &cfg} + log.Fatal(srv.Run()) }