Przeglądaj źródła

cmd/ursrv: Embed static assets

Jakob Borg 2 lat temu
rodzic
commit
2fcf7006e6
1 zmienionych plików z 6 dodań i 2 usunięć
  1. 6 2
      cmd/ursrv/main.go

+ 6 - 2
cmd/ursrv/main.go

@@ -10,6 +10,7 @@ import (
 	"bytes"
 	"crypto/tls"
 	"database/sql"
+	"embed"
 	"encoding/json"
 	"html/template"
 	"io"
@@ -45,6 +46,9 @@ type CLI struct {
 	GeoIPPath string `env:"UR_GEOIP" default:"GeoLite2-City.mmdb"`
 }
 
+//go:embed static
+var statics embed.FS
+
 var (
 	tpl                *template.Template
 	compilerRe         = regexp.MustCompile(`\(([A-Za-z0-9()., -]+) \w+-\w+(?:| android| default)\) ([\[email protected]]+)`)
@@ -168,7 +172,7 @@ func main() {
 
 	// Template
 
-	fd, err := os.Open("static/index.html")
+	fd, err := statics.Open("static/index.html")
 	if err != nil {
 		log.Fatalln("template:", err)
 	}
@@ -224,7 +228,7 @@ func main() {
 	http.HandleFunc("/performance.json", srv.performanceHandler)
 	http.HandleFunc("/blockstats.json", srv.blockStatsHandler)
 	http.HandleFunc("/locations.json", srv.locationsHandler)
-	http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static"))))
+	http.Handle("/static/", http.FileServer(http.FS(statics)))
 
 	go srv.cacheRefresher()