internal/worker: add build info to server home page
Change-Id: I8e6c8fff900de2b83f2b8b59cd38d4716feb3c2a
Reviewed-on: https://go-review.googlesource.com/c/vulndb/+/393841
Trust: Jonathan Amsterdam <jba@google.com>
Run-TryBot: Jonathan Amsterdam <jba@google.com>
Reviewed-by: Damien Neil <dneil@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: kokoro <noreply+kokoro@google.com>
diff --git a/internal/worker/server.go b/internal/worker/server.go
index eda39c2..b5724e7 100644
--- a/internal/worker/server.go
+++ b/internal/worker/server.go
@@ -13,6 +13,7 @@
"net/http"
"os"
"path/filepath"
+ "runtime/debug"
"strconv"
"strings"
"sync/atomic"
@@ -234,6 +235,7 @@
}
type indexPage struct {
+ BuildInfo string
CVEListRepoURL string
Namespace string
Updates []*store.CommitUpdateRecord
@@ -249,6 +251,25 @@
Namespace: s.cfg.Namespace,
}
+ buildInfo, ok := debug.ReadBuildInfo()
+ if !ok {
+ page.BuildInfo = "(no build information)"
+ } else {
+ commit := "unknown"
+ modified := false
+ for _, bs := range buildInfo.Settings {
+ switch bs.Key {
+ case "vcs.revision":
+ commit = bs.Value
+ case "vcs.modified":
+ modified = (bs.Value == "true")
+ }
+ }
+ page.BuildInfo = fmt.Sprintf("Commit %s", commit)
+ if modified {
+ page.BuildInfo += " (dirty)"
+ }
+ }
g, ctx := errgroup.WithContext(r.Context())
g.Go(func() error {
var err error
diff --git a/internal/worker/static/index.tmpl b/internal/worker/static/index.tmpl
index 6f2ca86..a06665f 100644
--- a/internal/worker/static/index.tmpl
+++ b/internal/worker/static/index.tmpl
@@ -12,6 +12,9 @@
<body>
<h1>{{.Namespace}} Vuln Worker</h1>
+
+ <p>{{.BuildInfo}}</p>
+
<p>All times in America/New_York.</p>