cmd/govulncheck: move HTML to static folder

The Go template use by the -html flag is moved to cmd/govulncheck/static
to make it easier to modify these files.

Change-Id: Ib63e6a207b5b592b0d0d7f91bb85a05c0e3e37de
Reviewed-on: https://go-review.googlesource.com/c/vuln/+/403574
Reviewed-by: Julie Qiu <julieqiu@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
Run-TryBot: Julie Qiu <julie@golang.org>
diff --git a/cmd/govulncheck/html.go b/cmd/govulncheck/html.go
index a4b382d..3f29f43 100644
--- a/cmd/govulncheck/html.go
+++ b/cmd/govulncheck/html.go
@@ -8,6 +8,7 @@
 package main
 
 import (
+	"embed"
 	"fmt"
 	"html/template"
 	"io"
@@ -15,10 +16,13 @@
 	"golang.org/x/vuln/vulncheck"
 )
 
+//go:embed static/*
+var staticContent embed.FS
+
 func html(w io.Writer, r *vulncheck.Result, callStacks map[*vulncheck.Vuln][]vulncheck.CallStack, moduleVersions map[string]string, topPackages map[string]bool, vulnGroups [][]*vulncheck.Vuln) error {
-	tmpl, err := template.New("govulncheck").Funcs(template.FuncMap{
+	tmpl, err := template.New("govulncheck.tmpl").Funcs(template.FuncMap{
 		"funcName": funcName,
-	}).Parse(templateSource)
+	}).ParseFS(staticContent, "static/govulncheck.tmpl")
 	if err != nil {
 		return err
 	}
@@ -62,45 +66,3 @@
 	}
 	return tmpl.Execute(w, vulns)
 }
-
-var templateSource = `
-<!DOCTYPE html>
-<html lang="en">
-<meta charset="utf-8">
-<title>govulncheck Results</title>
-<style>
-body {
-  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu,
-    'Helvetica Neue', Arial, sans-serif;
-}
-list-style-type: none;
-</style>
-
-
-<body>
-  {{range .}}
-    <h2>{{.ID}}</h2>
-    <table>
-      <tr><td>Package</td><td>{{.PkgPath}}</td></tr>
-      <tr><td>Your version</td><td>{{.CurrentVersion}}</td></tr>
-      <tr><td>Fixed version</td><td>{{.FixedVersion}}</td></tr>
-      <tr><td>Reference</td><td>{{.Reference}}</td></tr>
-      <tr><td>Description</td><td>{{.Details}}</td></tr>
-    </table>
-
-    {{range .Stacks}}
-      <details>
-        <summary>{{.Summary}}</summary>
-        <ul>
-          {{range .Stack}}
-            <li>{{.Function | funcName}}</li>
-          {{end}}
-        </ul>
-      </details>
-    {{end}}
-  {{else}}
-    No vulnerabilities found.
-  {{end}}
-</body>
-</html>
-`
diff --git a/cmd/govulncheck/static/govulncheck.tmpl b/cmd/govulncheck/static/govulncheck.tmpl
new file mode 100644
index 0000000..4f7261d
--- /dev/null
+++ b/cmd/govulncheck/static/govulncheck.tmpl
@@ -0,0 +1,40 @@
+
+<!DOCTYPE html>
+<html lang="en">
+<meta charset="utf-8">
+<title>govulncheck Results</title>
+<style>
+body {
+  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu,
+    'Helvetica Neue', Arial, sans-serif;
+}
+list-style-type: none;
+</style>
+
+
+<body>
+  {{range .}}
+    <h2>{{.ID}}</h2>
+    <table>
+      <tr><td>Package</td><td>{{.PkgPath}}</td></tr>
+      <tr><td>Your version</td><td>{{.CurrentVersion}}</td></tr>
+      <tr><td>Fixed version</td><td>{{.FixedVersion}}</td></tr>
+      <tr><td>Reference</td><td>{{.Reference}}</td></tr>
+      <tr><td>Description</td><td>{{.Details}}</td></tr>
+    </table>
+
+    {{range .Stacks}}
+      <details>
+        <summary>{{.Summary}}</summary>
+        <ul>
+          {{range .Stack}}
+            <li>{{.Function | funcName}}</li>
+          {{end}}
+        </ul>
+      </details>
+    {{end}}
+  {{else}}
+    No vulnerabilities found.
+  {{end}}
+</body>
+</html>