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}