10764: De-duplicate real/test server startup. Add test for broken config.
[arvados.git] / services / ws / main.go
1 package main
2
3 import (
4         "flag"
5         "fmt"
6
7         "git.curoverse.com/arvados.git/sdk/go/config"
8         "git.curoverse.com/arvados.git/sdk/go/ctxlog"
9 )
10
11 var logger = ctxlog.FromContext
12
13 func main() {
14         log := logger(nil)
15
16         configPath := flag.String("config", "/etc/arvados/ws/ws.yml", "`path` to config file")
17         dumpConfig := flag.Bool("dump-config", false, "show current configuration and exit")
18         cfg := defaultConfig()
19         flag.Parse()
20
21         err := config.LoadFile(&cfg, *configPath)
22         if err != nil {
23                 log.Fatal(err)
24         }
25
26         ctxlog.SetLevel(cfg.LogLevel)
27         ctxlog.SetFormat(cfg.LogFormat)
28
29         if *dumpConfig {
30                 txt, err := config.Dump(&cfg)
31                 if err != nil {
32                         log.Fatal(err)
33                 }
34                 fmt.Print(string(txt))
35                 return
36         }
37
38         log.Info("started")
39         srv := &server{wsConfig: &cfg}
40         log.Fatal(srv.Run())
41 }