From 13a1c073229ea2931c70e781c7c2a06cf59e0776 Mon Sep 17 00:00:00 2001 From: Robert Iannucci Date: Thu, 21 Oct 2021 01:05:36 -0700 Subject: [PATCH] Report server version on startup. --- goconvey.go | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/goconvey.go b/goconvey.go index 20728813..22ce6aec 100644 --- a/goconvey.go +++ b/goconvey.go @@ -5,6 +5,7 @@ package main import ( + "context" "embed" "flag" "fmt" @@ -18,6 +19,7 @@ import ( "os/signal" "path/filepath" "runtime" + "runtime/debug" "strings" "syscall" "time" @@ -54,7 +56,8 @@ func init() { func main() { flag.Parse() - log.Printf(initialConfiguration, host, port, nap, cover) + + printHeader() tmpDir, err := ioutil.TempDir("", "*.goconvey") if err != nil { @@ -102,11 +105,27 @@ func main() { <-done log.Println("shutting down") - if err := srv.Shutdown(nil); err != nil { + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + if err := srv.Shutdown(ctx); err != nil { log.Printf("failed to shutdown: %s\n", err) } } +func printHeader() { + log.Println("GoConvey server: ") + serverVersion := "" + if binfo, ok := debug.ReadBuildInfo(); ok { + serverVersion = binfo.Main.Version + } + log.Println(" version:", serverVersion) + log.Println(" host:", host) + log.Println(" port:", port) + log.Println(" poll:", nap) + log.Println(" cover:", cover) + log.Println() +} + func browserCmd() (string, bool) { browser := map[string]string{ "darwin": "open", @@ -283,9 +302,8 @@ var ( ) const ( - initialConfiguration = "Initial configuration: [host: %s] [port: %d] [poll: %v] [cover: %v]\n" - separator = string(filepath.Separator) - endGoPath = separator + "src" + separator + separator = string(filepath.Separator) + endGoPath = separator + "src" + separator ) // This method exists because of a bug in the go cover tool that