github.com/wtfutil/wtf@v0.43.0/modules/grafana/settings.go (about) 1 package grafana 2 3 import ( 4 "log" 5 "os" 6 "strings" 7 8 "github.com/olebedev/config" 9 "github.com/wtfutil/wtf/cfg" 10 ) 11 12 const ( 13 defaultFocusable = true 14 defaultTitle = "Grafana" 15 ) 16 17 type Settings struct { 18 *cfg.Common 19 20 apiKey string `help:"Your Grafana API token."` 21 baseURI string `help:"Base url of your grafana instance"` 22 } 23 24 func NewSettingsFromYAML(name string, ymlConfig *config.Config, globalConfig *config.Config) *Settings { 25 26 settings := Settings{ 27 Common: cfg.NewCommonSettingsFromModule(name, defaultTitle, defaultFocusable, ymlConfig, globalConfig), 28 29 apiKey: ymlConfig.UString("apiKey", os.Getenv("WTF_GRAFANA_API_KEY")), 30 baseURI: ymlConfig.UString("baseUri", ""), 31 } 32 33 if settings.baseURI == "" { 34 log.Fatal("baseUri for grafana is empty, but is required") 35 } 36 settings.baseURI = strings.TrimSuffix(settings.baseURI, "/") 37 38 return &settings 39 }