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