package gerrit import ( "os" "github.com/olebedev/config" "github.com/wtfutil/wtf/cfg" ) const ( defaultFocusable = true defaultTitle = "Gerrit" ) type colors struct { rows struct { even string `help:"Define the foreground color for even-numbered rows." values:"Any X11 color name." optional:"true"` odd string `help:"Define the foreground color for odd-numbered rows." values:"Any X11 color name." optional:"true"` } } type Settings struct { colors common *cfg.Common domain string `help:"Your Gerrit corporate domain."` password string `help:"Your Gerrit HTTP Password."` projects []interface{} `help:"A list of Gerrit project names to fetch data for."` username string `help:"Your Gerrit username."` verifyServerCertificate bool `help:"Determines whether or not the server’s certificate chain and host name are verified." values:"true or false" optional:"true"` } func NewSettingsFromYAML(name string, ymlConfig *config.Config, globalConfig *config.Config) *Settings { settings := Settings{ common: cfg.NewCommonSettingsFromModule(name, defaultTitle, defaultFocusable, ymlConfig, globalConfig), domain: ymlConfig.UString("domain", ""), password: ymlConfig.UString("password", os.Getenv("WTF_GERRIT_PASSWORD")), projects: ymlConfig.UList("projects"), username: ymlConfig.UString("username", ""), verifyServerCertificate: ymlConfig.UBool("verifyServerCertificate", true), } cfg.ModuleSecret(name, globalConfig, &settings.password). Service(settings.domain).Load() settings.colors.rows.even = ymlConfig.UString("colors.rows.even", "white") settings.colors.rows.odd = ymlConfig.UString("colors.rows.odd", "blue") return &settings }