Files
traefik-lazyload/pkg/config/config.go
2023-05-31 22:05:02 -04:00

52 lines
1.1 KiB
Go

package config
import (
_ "embed"
"strings"
"time"
"github.com/sirupsen/logrus"
"github.com/spf13/viper"
)
// Config model and loader
type ConfigModel struct {
Listen string // http listen
StopAtBoot bool // Stop existing containers at start of app
Splash string // Which splash page to serve
StatusHost string // Host that will serve the status page (empty is disabled)
StopDelay time.Duration // Amount of time to wait before stopping a container
PollFreq time.Duration // How often to check for changes
Timeout time.Duration // Default operation timeout (eg. starting/stopping a container)
Verbose bool // Debug-level logging
LabelPrefix string
}
var Model *ConfigModel = new(ConfigModel)
func init() {
viper.AddConfigPath(".")
viper.SetConfigName("config")
viper.SetConfigType("yaml")
viper.SetEnvPrefix("tll")
viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
viper.AutomaticEnv()
if err := viper.ReadInConfig(); err != nil {
logrus.Fatal(err)
}
if err := viper.Unmarshal(Model); err != nil {
logrus.Fatal(err)
}
}
func SubLabel(name string) string {
return Model.LabelPrefix + "." + name
}