mirror of
https://github.com/TwiN/gatus.git
synced 2024-12-01 12:23:24 +01:00
49 lines
1.1 KiB
Go
49 lines
1.1 KiB
Go
package ui
|
|
|
|
import (
|
|
"bytes"
|
|
"html/template"
|
|
)
|
|
|
|
const (
|
|
defaultTitle = "Health Dashboard | Gatus"
|
|
defaultLogo = ""
|
|
)
|
|
|
|
var (
|
|
// StaticFolder is the path to the location of the static folder from the root path of the project
|
|
// The only reason this is exposed is to allow running tests from a different path than the root path of the project
|
|
StaticFolder = "./web/static"
|
|
)
|
|
|
|
// Config is the configuration for the UI of Gatus
|
|
type Config struct {
|
|
Title string `yaml:"title"` // Title of the page
|
|
Logo string `yaml:"logo"` // Logo to display on the page
|
|
}
|
|
|
|
// GetDefaultConfig returns a Config struct with the default values
|
|
func GetDefaultConfig() *Config {
|
|
return &Config{
|
|
Title: defaultTitle,
|
|
Logo: defaultLogo,
|
|
}
|
|
}
|
|
|
|
// ValidateAndSetDefaults validates the UI configuration and sets the default values if necessary.
|
|
func (cfg *Config) ValidateAndSetDefaults() error {
|
|
if len(cfg.Title) == 0 {
|
|
cfg.Title = defaultTitle
|
|
}
|
|
t, err := template.ParseFiles(StaticFolder + "/index.html")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
var buffer bytes.Buffer
|
|
err = t.Execute(&buffer, cfg)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|