LabCodeHub öffentliche Ansicht
Anmelden
Küpper / ehc-tvwall öffentlich
Branch: main
ehc-tvwall / internal / web / assets.go
Verlauf Rohdaten
R Rüdiger Küpper fix: v1.0.0
14518d05 vor 11 Tagen
internal/web/assets.go 35 Zeilen · 811 B · Go
1
package web
2
3
import (
4
	"embed"
5
	"io/fs"
6
	"log"
7
	"net/http"
8
	"os/exec"
9
)
10
11
//go:embed assets
12
var assetsFS embed.FS
13
14
// staticHandler liefert die eingebetteten CSS-/JS-Dateien aus.
15
func staticHandler() http.Handler {
16
	sub, err := fs.Sub(assetsFS, "assets")
17
	if err != nil {
18
		log.Fatalf("web: eingebettete dateien: %v", err)
19
	}
20
	return http.FileServer(http.FS(sub))
21
}
22
23
// writeAsset schreibt eine eingebettete Datei direkt in die Antwort.
24
func writeAsset(w http.ResponseWriter, name string) {
25
	data, err := assetsFS.ReadFile("assets/" + name)
26
	if err != nil {
27
		http.Error(w, "Datei fehlt: "+name, http.StatusInternalServerError)
28
		return
29
	}
30
	if _, err := w.Write(data); err != nil {
31
		log.Printf("web: %s ausliefern: %v", name, err)
32
	}
33
}
34
35
func lookPath(name string) (string, error) { return exec.LookPath(name) }