10666: Replaced 'version' package with 'version' var
[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         "os"
11
12         "git.curoverse.com/arvados.git/sdk/go/config"
13         "git.curoverse.com/arvados.git/sdk/go/ctxlog"
14 )
15
16 var logger = ctxlog.FromContext
17 var version = "dev"
18
19 func main() {
20         log := logger(nil)
21
22         configPath := flag.String("config", "/etc/arvados/ws/ws.yml", "`path` to config file")
23         dumpConfig := flag.Bool("dump-config", false, "show current configuration and exit")
24         getVersion := flag.Bool("version", false, "Print version information and exit.")
25         cfg := defaultConfig()
26         flag.Parse()
27
28         // Print version information if requested
29         if *getVersion {
30                 fmt.Printf("Version: %s\n", version)
31                 os.Exit(0)
32         }
33
34         err := config.LoadFile(&cfg, *configPath)
35         if err != nil {
36                 log.Fatal(err)
37         }
38
39         ctxlog.SetLevel(cfg.LogLevel)
40         ctxlog.SetFormat(cfg.LogFormat)
41
42         if *dumpConfig {
43                 txt, err := config.Dump(&cfg)
44                 if err != nil {
45                         log.Fatal(err)
46                 }
47                 fmt.Print(string(txt))
48                 return
49         }
50
51         log.Printf("arvados-ws %q started", version)
52
53         log.Info("started")
54         srv := &server{wsConfig: &cfg}
55         log.Fatal(srv.Run())
56 }