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  }