mirror of
https://github.com/sablierapp/sablier.git
synced 2025-12-21 13:23:03 +01:00
* 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
57 lines
1.1 KiB
Go
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
|
|
}
|