40 lines
804 B
Go
40 lines
804 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"embed"
|
||
|
"io/fs"
|
||
|
"net/http"
|
||
|
|
||
|
"go.sour.is/pkg/lg"
|
||
|
"go.sour.is/pkg/service"
|
||
|
)
|
||
|
|
||
|
var _ = apps.Register(10, func(ctx context.Context, svc *service.Harness) error {
|
||
|
_, span := lg.Span(ctx)
|
||
|
defer span.End()
|
||
|
|
||
|
svc.Add(&favicon{})
|
||
|
|
||
|
return nil
|
||
|
})
|
||
|
|
||
|
//go:embed favicon/*
|
||
|
var faviconAsset embed.FS
|
||
|
|
||
|
type favicon struct{}
|
||
|
|
||
|
func (favicon) RegisterHTTP(mux *http.ServeMux) {
|
||
|
dir, _ := fs.Sub(faviconAsset, "favicon")
|
||
|
srv := http.FileServer(http.FS(dir))
|
||
|
|
||
|
mux.Handle("/favicon.ico", srv)
|
||
|
mux.Handle("/favicon.txt", srv)
|
||
|
mux.Handle("/favicon-16x16.png", srv)
|
||
|
mux.Handle("/favicon-32x32.png", srv)
|
||
|
mux.Handle("/android-chrome-192x192.png", srv)
|
||
|
mux.Handle("/android-chrome-512x512.png", srv)
|
||
|
mux.Handle("/apple-touch-icon.png", srv)
|
||
|
mux.Handle("/site.webmanifest", srv)
|
||
|
}
|