X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/ba57b6537679889b42693ecd839a94d59c716aaf..92656b214ed120c631bc6adab3b35992939e2ced:/services/ws/main.go diff --git a/services/ws/main.go b/services/ws/main.go index 7c3625bdad..df462eafc2 100644 --- a/services/ws/main.go +++ b/services/ws/main.go @@ -1,26 +1,36 @@ +// Copyright (C) The Arvados Authors. All rights reserved. +// +// SPDX-License-Identifier: AGPL-3.0 + package main import ( "flag" "fmt" - "net/http" - "time" + "os" "git.curoverse.com/arvados.git/sdk/go/config" "git.curoverse.com/arvados.git/sdk/go/ctxlog" - "github.com/coreos/go-systemd/daemon" ) 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") + getVersion := flag.Bool("version", false, "Print version information and exit.") cfg := defaultConfig() flag.Parse() + // Print version information if requested + if *getVersion { + fmt.Printf("Version: %s\n", version) + os.Exit(0) + } + err := config.LoadFile(&cfg, *configPath) if err != nil { log.Fatal(err) @@ -38,30 +48,9 @@ func main() { return } - log.Info("started") - eventSource := &pgEventSource{ - DataSource: cfg.Postgres.ConnectionString(), - QueueSize: cfg.ServerEventQueue, - } - srv := &http.Server{ - Addr: cfg.Listen, - ReadTimeout: time.Minute, - WriteTimeout: time.Minute, - MaxHeaderBytes: 1 << 20, - Handler: &router{ - Config: &cfg, - eventSource: eventSource, - newPermChecker: func() permChecker { return newPermChecker(cfg.Client) }, - }, - } - // Bootstrap the eventSource by attaching a dummy subscriber - // and hanging up. - eventSource.NewSink().Stop() - - if _, err := daemon.SdNotify(false, "READY=1"); err != nil { - log.WithError(err).Warn("error notifying init daemon") - } + log.Printf("arvados-ws %q started", version) - log.WithField("Listen", srv.Addr).Info("listening") - log.Fatal(srv.ListenAndServe()) + log.Info("started") + srv := &server{wsConfig: &cfg} + log.Fatal(srv.Run()) }