X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/1e094e23db422cabe013ecbf7a0b465c4b096e12..0c888bcc93b559339c8abbce784bdcc44746bca2:/services/ws/main.go diff --git a/services/ws/main.go b/services/ws/main.go index 9a24b312b0..a0006a4f8a 100644 --- a/services/ws/main.go +++ b/services/ws/main.go @@ -1,26 +1,43 @@ +// Copyright (C) The Arvados Authors. All rights reserved. +// +// SPDX-License-Identifier: AGPL-3.0 + package main import ( "flag" "fmt" - "log" - "net/http" - "time" "git.curoverse.com/arvados.git/sdk/go/config" + "git.curoverse.com/arvados.git/sdk/go/ctxlog" ) +var logger = ctxlog.FromContext +var version = "dev" + func main() { + log := logger(nil) + configPath := flag.String("config", "/etc/arvados/ws/ws.yml", "`path` to config file") dumpConfig := flag.Bool("dump-config", false, "show current configuration and exit") - cfg := DefaultConfig() + getVersion := flag.Bool("version", false, "Print version information and exit.") + cfg := defaultConfig() flag.Parse() + // Print version information if requested + if *getVersion { + fmt.Printf("arvados-ws %s\n", version) + return + } + err := config.LoadFile(&cfg, *configPath) if err != nil { log.Fatal(err) } + ctxlog.SetLevel(cfg.LogLevel) + ctxlog.SetFormat(cfg.LogFormat) + if *dumpConfig { txt, err := config.Dump(&cfg) if err != nil { @@ -30,17 +47,7 @@ func main() { return } - 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(), - }, - } - log.Fatal(srv.ListenAndServe()) + log.Printf("arvados-ws %s started", version) + srv := &server{wsConfig: &cfg} + log.Fatal(srv.Run()) }