Files
sablier/pkg/theme/theme.go
Alexis Couvreur b1e8fc2f20 test(docker): use testcontainers (#519)
* refactor: move app/theme to pkg/theme

* refactor

* wip

* use dockerindocker

* add providertest

* wip

* wip

* test(docker): get state  now uses dind container to test against a real provider

* test(docker): move to docker_test package

* refactor(docker): create container_inspect.go

* test(docker): add more dind test

* test(docker): event test now use docker in docker

* refactor: remove unused instance  type props

* refactor test docker

* fix instance list  sort

* stabilize test

* remove testcontainers custom config
2025-03-01 19:34:36 -05:00

57 lines
1.1 KiB
Go

package theme
import (
"embed"
"html/template"
"io/fs"
"log/slog"
)
// List of built-it themes
//
//go:embed embedded/*.html
var embeddedThemesFS embed.FS
type Themes struct {
themes *template.Template
l *slog.Logger
}
func New(logger *slog.Logger) (*Themes, error) {
themes := &Themes{
themes: template.New("root"),
l: logger,
}
err := themes.ParseTemplatesFS(embeddedThemesFS)
if err != nil {
// Should never happen
logger.Error("could not parse embedded templates", slog.Any("reason", err))
return nil, err
}
return themes, nil
}
func NewWithCustomThemes(custom fs.FS, logger *slog.Logger) (*Themes, error) {
themes := &Themes{
themes: template.New("root"),
l: logger,
}
err := themes.ParseTemplatesFS(embeddedThemesFS)
if err != nil {
// Should never happen
logger.Error("could not parse embedded templates", slog.Any("reason", err))
return nil, err
}
err = themes.ParseTemplatesFS(custom)
if err != nil {
logger.Error("could not parse custom templates", slog.Any("reason", err))
return nil, err
}
return themes, nil
}