mirror of
https://github.com/taigrr/wtf
synced 2025-01-18 04:03:14 -08:00
Have the modules set their own titles If no title is specified, use this title, rather than default to name
76 lines
1.9 KiB
Go
76 lines
1.9 KiB
Go
package jira
|
|
|
|
import (
|
|
"os"
|
|
|
|
"github.com/olebedev/config"
|
|
"github.com/wtfutil/wtf/cfg"
|
|
)
|
|
|
|
const defaultTitle = "Jira"
|
|
|
|
type colors struct {
|
|
rows struct {
|
|
even string
|
|
odd string
|
|
}
|
|
}
|
|
|
|
type Settings struct {
|
|
colors
|
|
common *cfg.Common
|
|
|
|
apiKey string
|
|
domain string
|
|
email string
|
|
jql string
|
|
projects []string
|
|
username string
|
|
verifyServerCertificate bool
|
|
}
|
|
|
|
func NewSettingsFromYAML(name string, ymlConfig *config.Config, globalConfig *config.Config) *Settings {
|
|
|
|
settings := Settings{
|
|
common: cfg.NewCommonSettingsFromModule(name, defaultTitle, ymlConfig, globalConfig),
|
|
|
|
apiKey: ymlConfig.UString("apiKey", os.Getenv("WTF_JIRA_API_KEY")),
|
|
domain: ymlConfig.UString("domain"),
|
|
email: ymlConfig.UString("email"),
|
|
jql: ymlConfig.UString("jql"),
|
|
username: ymlConfig.UString("username"),
|
|
verifyServerCertificate: ymlConfig.UBool("verifyServerCertificate", true),
|
|
}
|
|
|
|
settings.colors.rows.even = ymlConfig.UString("colors.even", "lightblue")
|
|
settings.colors.rows.odd = ymlConfig.UString("colors.odd", "white")
|
|
|
|
settings.projects = settings.arrayifyProjects(ymlConfig, globalConfig)
|
|
|
|
return &settings
|
|
}
|
|
|
|
/* -------------------- Unexported functions -------------------- */
|
|
|
|
// arrayifyProjects figures out if we're dealing with a single project or an array of projects
|
|
func (settings *Settings) arrayifyProjects(ymlConfig *config.Config, globalConfig *config.Config) []string {
|
|
projects := []string{}
|
|
|
|
// Single project
|
|
project, err := ymlConfig.String("project")
|
|
if err == nil {
|
|
projects = append(projects, project)
|
|
return projects
|
|
}
|
|
|
|
// Array of projects
|
|
projectList := ymlConfig.UList("project")
|
|
for _, projectName := range projectList {
|
|
if project, ok := projectName.(string); ok {
|
|
projects = append(projects, project)
|
|
}
|
|
}
|
|
|
|
return projects
|
|
}
|