Raw
 1package theme
 2
 3import (
 4	"embed"
 5	"io/fs"
 6	"strings"
 7
 8	dexweb "github.com/dexidp/dex/web"
 9)
10
11const (
12	Name     = "tug"
13	Issuer   = "tug"
14	themeDir = "themes/" + Name
15)
16
17//go:embed themes
18var files embed.FS
19
20type overlay struct {
21	base fs.FS
22	tug  fs.FS
23}
24
25func FS() fs.FS {
26	return overlay{base: dexweb.FS(), tug: files}
27}
28
29func (o overlay) Open(name string) (fs.File, error) {
30	if name == themeDir || strings.HasPrefix(name, themeDir+"/") {
31		return o.tug.Open(name)
32	}
33	return o.base.Open(name)
34}