diff options
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | main.go | 24 | ||||
-rw-r--r-- | templates/index.html (renamed from appdata/index.html.tmpl) | 0 |
3 files changed, 13 insertions, 14 deletions
@@ -16,7 +16,6 @@ clean: install: all install -Dm 755 build/$(PROGRAM) $(DESTDIR)$(PREFIX)/bin/$(PROGRAM) install -Dm 644 config/default.json $(DESTDIR)/etc/$(PROGRAM)/config.json - install -Dm 644 appdata/index.html.tmpl $(DESTDIR)$(PREFIX)/share/$(PROGRAM)/index.html.tmpl debug: - go run *.go -c config/example.json -a appdata + go run *.go -c config/example.json @@ -10,15 +10,12 @@ import ( "log" "net/http" "net/netip" - "path/filepath" "text/template" ) -//go:embed simple.css/simple.css +//go:embed simple.css/simple.css templates/index.html var static embed.FS -var appdata string - type RuntimeConfig struct { Devices DevicesConfig Web WebConfig @@ -35,7 +32,7 @@ type WebConfig struct { func main() { configPath := parseFlags() c := parseConfig(configPath) - http.HandleFunc("/", index(c.Devices, appdata)) + http.HandleFunc("/", index(c.Devices)) http.HandleFunc("/api", api()) http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.FS(static)))) @@ -50,8 +47,6 @@ func parseFlags() string { flag.StringVar(&r, "c", "/etc/webiot/config.json", "path to configuration file") - flag.StringVar(&appdata, "a", "/usr/share/webiot", - "path to static application data") flag.Parse() return r @@ -76,13 +71,18 @@ func parseConfig(path string) RuntimeConfig { } // index() returns a HTTP handler for the index page. -func index(devices DevicesConfig, appdata string) func(http.ResponseWriter, *http.Request) { - - path := filepath.Join(appdata, "index.html.tmpl") - html := mustRender(path, devices) +func index(devices DevicesConfig) func(http.ResponseWriter, *http.Request) { + tmpl, err := template.ParseFS(static, "templates/index.html") + if err != nil { + log.Fatal(err) + } return func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, html) + err = tmpl.Execute(w, devices) + if err != nil { + http.Error(w, fmt.Sprint(err), http.StatusInternalServerError) + return + } } } diff --git a/appdata/index.html.tmpl b/templates/index.html index c9fa2f4..c9fa2f4 100644 --- a/appdata/index.html.tmpl +++ b/templates/index.html |