From b7fb34c8085f071c01c3e8d59ae54c764a8be5ef Mon Sep 17 00:00:00 2001 From: Paul Vaughan Date: Mon, 30 Aug 2021 21:23:39 +0100 Subject: [PATCH] FreeBSD added to icons. --- cmd/receiver/assets/img/freebsd.png | Bin 0 -> 22391 bytes cmd/receiver/web.go | 11 +++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 cmd/receiver/assets/img/freebsd.png diff --git a/cmd/receiver/assets/img/freebsd.png b/cmd/receiver/assets/img/freebsd.png new file mode 100644 index 0000000000000000000000000000000000000000..43b55a64427cc703d316b5c391e189d818060311 GIT binary patch literal 22391 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 u*Xgf-0KpJo;C}_Rfiiw8}_sS0000%s for more info.", vcms.ProjectURL, vcms.ProjectURL) + footerHTML = fmt.Sprintf("%s v%s (%s), built with %s, %s/%s. %s", vcms.AppTitle, vcms.AppVersion, vcms.AppDate, runtime.Version(), runtime.GOOS, runtime.GOARCH, subFooterHTML) + ) funcMap := template.FuncMap{ "inc": func(i int) int { @@ -38,7 +43,7 @@ func dashboardHandler(w http.ResponseWriter, r *http.Request) { // Build the HTML. data.Title = vcms.AppTitle // data.Subtitle = "Something Something Darkside" - data.Footer = template.HTML(cmdFooterHTML) + data.Footer = template.HTML(footerHTML) for _, key := range keys { var row rowData if len(nodes[key].Meta.Errors) > 0 { @@ -116,6 +121,8 @@ func getOSImage(node *vcms.SystemData) string { return "elementary" case strings.Contains(input, "fedora"): return "fedora" + case strings.Contains(input, "freebsd"): + return "freebsd" case strings.Contains(input, "kali"): return "kali" // case strings.Contains(input, "kubuntu"): // Kubuntu identifies itself as Ubuntu.