aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2022-05-21 14:01:15 +0200
committerDmitry Vyukov <dvyukov@google.com>2022-05-23 11:53:38 +0200
commitc06b338683a7a14ed2e9db22c5b5dae9c5fa5db6 (patch)
tree07cbbc6514c415bde43917ef6f46c9d78f501efd
parent4c7657cb23023fd64d0585c979e6fec4ef441f04 (diff)
pkg/html: move some functions to sub-package
Move functions that need embed assets to a separate package. In preparation for the next change.
-rw-r--r--Makefile2
-rw-r--r--pkg/html/html.go18
-rwxr-xr-xpkg/html/pages/gen.sh (renamed from pkg/html/gen.sh)6
-rw-r--r--pkg/html/pages/generated.go (renamed from pkg/html/generated.go)2
-rw-r--r--pkg/html/pages/pages.go30
-rw-r--r--syz-manager/html.go16
-rw-r--r--tools/syz-reporter/reporter.go4
-rw-r--r--tools/syz-testbed/html.go4
8 files changed, 47 insertions, 35 deletions
diff --git a/Makefile b/Makefile
index e631bb402..6a2fb7b57 100644
--- a/Makefile
+++ b/Makefile
@@ -238,7 +238,7 @@ generate:
$(MAKE) format
generate_go: format_cpp
- $(GO) generate ./pkg/csource ./executor ./pkg/ifuzz ./pkg/build ./pkg/html
+ $(GO) generate ./pkg/csource ./executor ./pkg/ifuzz ./pkg/build ./pkg/html/pages
generate_fidl:
ifeq ($(TARGETOS),fuchsia)
diff --git a/pkg/html/html.go b/pkg/html/html.go
index 991f7b37a..d9e4e5881 100644
--- a/pkg/html/html.go
+++ b/pkg/html/html.go
@@ -1,14 +1,11 @@
// Copyright 2018 syzkaller project authors. All rights reserved.
// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
-//go:generate ./gen.sh
-
package html
import (
"fmt"
"html/template"
- "io/fs"
"reflect"
"strings"
texttemplate "text/template"
@@ -17,29 +14,14 @@ import (
"github.com/google/syzkaller/dashboard/dashapi"
)
-func CreatePage(page string) *template.Template {
- page = strings.Replace(page, "{{HEAD}}", getHeadTemplate(), 1)
- return template.Must(template.New("").Funcs(Funcs).Parse(page))
-}
-
func CreateGlob(glob string) *template.Template {
return template.Must(template.New("").Funcs(Funcs).ParseGlob(glob))
}
-func CreateFromFS(fs fs.FS, patterns ...string) *template.Template {
- t := template.Must(template.New("syz-head").Funcs(Funcs).Parse(getHeadTemplate()))
- return template.Must(t.New("").Funcs(Funcs).ParseFS(fs, patterns...))
-}
-
func CreateTextGlob(glob string) *texttemplate.Template {
return texttemplate.Must(texttemplate.New("").Funcs(texttemplate.FuncMap(Funcs)).ParseGlob(glob))
}
-func getHeadTemplate() string {
- const headTempl = `<style type="text/css" media="screen">%v</style><script>%v</script>`
- return fmt.Sprintf(headTempl, style, js)
-}
-
var Funcs = template.FuncMap{
"link": link,
"optlink": optlink,
diff --git a/pkg/html/gen.sh b/pkg/html/pages/gen.sh
index 6182754b9..a326138b2 100755
--- a/pkg/html/gen.sh
+++ b/pkg/html/pages/gen.sh
@@ -5,10 +5,10 @@
set -eu
echo '// Code generated by pkg/html/html.go. DO NOT EDIT.' > generated.go
-echo 'package html' >> generated.go
+echo 'package pages' >> generated.go
echo 'const style = `' >> generated.go
-cat ../../dashboard/app/static/style.css >> generated.go
+cat ../../../dashboard/app/static/style.css >> generated.go
echo '`' >> generated.go
echo 'const js = `' >> generated.go
-cat ../../dashboard/app/static/common.js >> generated.go
+cat ../../../dashboard/app/static/common.js >> generated.go
echo '`' >> generated.go
diff --git a/pkg/html/generated.go b/pkg/html/pages/generated.go
index fed290590..56f5e2d5f 100644
--- a/pkg/html/generated.go
+++ b/pkg/html/pages/generated.go
@@ -1,5 +1,5 @@
// Code generated by pkg/html/html.go. DO NOT EDIT.
-package html
+package pages
const style = `
#topbar {
diff --git a/pkg/html/pages/pages.go b/pkg/html/pages/pages.go
new file mode 100644
index 000000000..0040c8617
--- /dev/null
+++ b/pkg/html/pages/pages.go
@@ -0,0 +1,30 @@
+// Copyright 2022 syzkaller project authors. All rights reserved.
+// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+//go:generate ./gen.sh
+
+package pages
+
+import (
+ "fmt"
+ "html/template"
+ "io/fs"
+ "strings"
+
+ "github.com/google/syzkaller/pkg/html"
+)
+
+func Create(page string) *template.Template {
+ page = strings.Replace(page, "{{HEAD}}", getHeadTemplate(), 1)
+ return template.Must(template.New("").Funcs(html.Funcs).Parse(page))
+}
+
+func CreateFromFS(fs fs.FS, patterns ...string) *template.Template {
+ t := template.Must(template.New("syz-head").Funcs(html.Funcs).Parse(getHeadTemplate()))
+ return template.Must(t.New("").Funcs(html.Funcs).ParseFS(fs, patterns...))
+}
+
+func getHeadTemplate() string {
+ const headTempl = `<style type="text/css" media="screen">%v</style><script>%v</script>`
+ return fmt.Sprintf(headTempl, style, js)
+}
diff --git a/syz-manager/html.go b/syz-manager/html.go
index 6252f55fa..fddbe1e5e 100644
--- a/syz-manager/html.go
+++ b/syz-manager/html.go
@@ -21,7 +21,7 @@ import (
"time"
"github.com/google/syzkaller/pkg/cover"
- "github.com/google/syzkaller/pkg/html"
+ "github.com/google/syzkaller/pkg/html/pages"
"github.com/google/syzkaller/pkg/log"
"github.com/google/syzkaller/pkg/osutil"
"github.com/google/syzkaller/pkg/signal"
@@ -755,7 +755,7 @@ type UIInput struct {
Cover int
}
-var summaryTemplate = html.CreatePage(`
+var summaryTemplate = pages.Create(`
<!doctype html>
<html>
<head>
@@ -819,7 +819,7 @@ var summaryTemplate = html.CreatePage(`
</body></html>
`)
-var syscallsTemplate = html.CreatePage(`
+var syscallsTemplate = pages.Create(`
<!doctype html>
<html>
<head>
@@ -848,7 +848,7 @@ var syscallsTemplate = html.CreatePage(`
</body></html>
`)
-var crashTemplate = html.CreatePage(`
+var crashTemplate = pages.Create(`
<!doctype html>
<html>
<head>
@@ -887,7 +887,7 @@ Report: <a href="/report?id={{.ID}}">{{.Triaged}}</a>
</body></html>
`)
-var corpusTemplate = html.CreatePage(`
+var corpusTemplate = pages.Create(`
<!doctype html>
<html>
<head>
@@ -927,7 +927,7 @@ type UIPrio struct {
Prio int32
}
-var prioTemplate = html.CreatePage(`
+var prioTemplate = pages.Create(`
<!doctype html>
<html>
<head>
@@ -961,7 +961,7 @@ type UIFallbackCall struct {
Errnos []int
}
-var fallbackCoverTemplate = html.CreatePage(`
+var fallbackCoverTemplate = pages.Create(`
<!doctype html>
<html>
<head>
@@ -992,7 +992,7 @@ type UIRawCallCover struct {
UpdateIDs []int
}
-var rawCoverTemplate = html.CreatePage(`
+var rawCoverTemplate = pages.Create(`
<!doctype html>
<html>
<head>
diff --git a/tools/syz-reporter/reporter.go b/tools/syz-reporter/reporter.go
index 7639fb87e..e0d88c1a6 100644
--- a/tools/syz-reporter/reporter.go
+++ b/tools/syz-reporter/reporter.go
@@ -24,7 +24,7 @@ import (
"strconv"
"strings"
- "github.com/google/syzkaller/pkg/html"
+ "github.com/google/syzkaller/pkg/html/pages"
"github.com/google/syzkaller/pkg/kconfig"
"github.com/google/syzkaller/pkg/mgrconfig"
"github.com/google/syzkaller/pkg/osutil"
@@ -223,7 +223,7 @@ func trimNewLines(data []byte) []byte {
return data
}
-var summaryTemplate = html.CreatePage(`
+var summaryTemplate = pages.Create(`
<!doctype html>
<html>
<head>
diff --git a/tools/syz-testbed/html.go b/tools/syz-testbed/html.go
index 25c79db69..060914407 100644
--- a/tools/syz-testbed/html.go
+++ b/tools/syz-testbed/html.go
@@ -16,7 +16,7 @@ import (
"os"
"time"
- "github.com/google/syzkaller/pkg/html"
+ "github.com/google/syzkaller/pkg/html/pages"
"github.com/google/syzkaller/pkg/osutil"
"github.com/gorilla/handlers"
)
@@ -307,4 +307,4 @@ func executeTemplate(w http.ResponseWriter, templ *template.Template, name strin
//go:embed templates
var testbedTemplates embed.FS
-var mainTemplate = html.CreateFromFS(testbedTemplates, "templates/*.html")
+var mainTemplate = pages.CreateFromFS(testbedTemplates, "templates/*.html")