From 1a5c82e2d08accb6330c4164ab987b87157b10ed Mon Sep 17 00:00:00 2001 From: Alan Pearce Date: Tue, 14 May 2024 21:16:23 +0200 Subject: build: bake git hash into build for headers and --version --- internal/server/headers.go | 1 + internal/server/mux.go | 14 ++++++++++++++ 2 files changed, 15 insertions(+) (limited to 'internal/server') diff --git a/internal/server/headers.go b/internal/server/headers.go index 4fb9efd..562fccc 100644 --- a/internal/server/headers.go +++ b/internal/server/headers.go @@ -11,6 +11,7 @@ func AddHeadersMiddleware(next http.Handler, config *cfg.Config) http.Handler { w.Header().Add(h, v) } w.Header().Add("Content-Security-Policy", config.Web.ContentSecurityPolicy.String()) + w.Header().Add("Server", "searchix/"+cfg.ShortSHA) next.ServeHTTP(w, r) }) diff --git a/internal/server/mux.go b/internal/server/mux.go index 582d154..0f32507 100644 --- a/internal/server/mux.go +++ b/internal/server/mux.go @@ -35,6 +35,11 @@ type HTTPError struct { const jsSnippet = template.HTML(livereload.JsSnippet) // #nosec G203 +type VersionInfo struct { + ShortSHA string + CommitSHA string +} + type TemplateData struct { Sources map[string]*config.Source Source config.Source @@ -42,6 +47,7 @@ type TemplateData struct { Results bool SourceResult *bleve.SearchResult ExtraBodyHTML template.HTML + Version VersionInfo } type ResultData[T options.NixOption] struct { @@ -53,6 +59,11 @@ type ResultData[T options.NixOption] struct { Next string } +var versionInfo = &VersionInfo{ + ShortSHA: config.ShortSHA, + CommitSHA: config.CommitSHA, +} + func applyDevModeOverrides(config *config.Config) { if len(config.Web.ContentSecurityPolicy.ScriptSrc) == 0 { config.Web.ContentSecurityPolicy.ScriptSrc = config.Web.ContentSecurityPolicy.DefaultSrc @@ -93,6 +104,7 @@ func NewMux( indexData := TemplateData{ ExtraBodyHTML: config.Web.ExtraBodyHTML, Sources: config.Importer.Sources, + Version: *versionInfo, } err := templates["index"].ExecuteTemplate(w, "index.gotmpl", indexData) if err != nil { @@ -140,6 +152,7 @@ func NewMux( ExtraBodyHTML: config.Web.ExtraBodyHTML, Source: *source, Sources: config.Importer.Sources, + Version: *versionInfo, }, ResultsPerPage: search.ResultsPerPage, Query: qs, @@ -200,6 +213,7 @@ func NewMux( Sources: config.Importer.Sources, Source: *source, SourceResult: sourceResult, + Version: *versionInfo, }) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) -- cgit 1.4.1