github.com/wtfutil/wtf@v0.43.0/modules/pihole/settings.go (about)

     1  package pihole
     2  
     3  import (
     4  	"github.com/olebedev/config"
     5  	"github.com/wtfutil/wtf/cfg"
     6  )
     7  
     8  const (
     9  	defaultFocusable = true
    10  	defaultTitle     = "Pi-hole"
    11  )
    12  
    13  type Settings struct {
    14  	*cfg.Common
    15  
    16  	wrapText       bool
    17  	apiUrl         string
    18  	token          string
    19  	showTopItems   int
    20  	showTopClients int
    21  	maxClientWidth int
    22  	maxDomainWidth int
    23  	showSummary    bool
    24  }
    25  
    26  func NewSettingsFromYAML(name string, ymlConfig *config.Config, globalConfig *config.Config) *Settings {
    27  	settings := Settings{
    28  		Common: cfg.NewCommonSettingsFromModule(name, defaultTitle, defaultFocusable, ymlConfig, globalConfig),
    29  
    30  		apiUrl:         ymlConfig.UString("apiUrl"),
    31  		token:          ymlConfig.UString("token"),
    32  		showSummary:    ymlConfig.UBool("showSummary", true),
    33  		showTopItems:   ymlConfig.UInt("showTopItems", 5),
    34  		showTopClients: ymlConfig.UInt("showTopClients", 5),
    35  		maxClientWidth: ymlConfig.UInt("maxClientWidth", 20),
    36  		maxDomainWidth: ymlConfig.UInt("maxDomainWidth", 20),
    37  	}
    38  
    39  	cfg.ModuleSecret(name, globalConfig, &settings.token).
    40  		Service(settings.apiUrl).Load()
    41  
    42  	return &settings
    43  }