diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e8cf4d0..86c71b89 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +### ⚡️ Added + +* Jenkins now supports coloured balls, [#358](https://github.com/wtfutil/wtf/issues/358) by [@rudolphjacksonm](https://github.com/rudolphjacksonm) + ## 0.6.0 ### ⚡️ Added diff --git a/modules/jenkins/settings.go b/modules/jenkins/settings.go index c1ab8bf1..6a132a66 100644 --- a/modules/jenkins/settings.go +++ b/modules/jenkins/settings.go @@ -13,6 +13,7 @@ type Settings struct { common *cfg.Common apiKey string + jobNameRegex string successBallColor string url string user string @@ -26,6 +27,7 @@ func NewSettingsFromYAML(name string, ymlConfig *config.Config) *Settings { common: cfg.NewCommonSettingsFromYAML(name, configKey, ymlConfig), apiKey: localConfig.UString("apiKey", os.Getenv("WTF_JENKINS_API_KEY")), + jobNameRegex: localConfig.UString("jobNameRegex", ".*"), successBallColor: localConfig.UString("successBallColor", "blue"), url: localConfig.UString("url"), user: localConfig.UString("user"), diff --git a/modules/jenkins/widget.go b/modules/jenkins/widget.go index 1b6e3d73..64e6e022 100644 --- a/modules/jenkins/widget.go +++ b/modules/jenkins/widget.go @@ -7,6 +7,7 @@ import ( "github.com/gdamore/tcell" "github.com/rivo/tview" "github.com/wtfutil/wtf/wtf" + "regexp" ) const HelpText = ` @@ -91,15 +92,19 @@ func (widget *Widget) display() { func (widget *Widget) contentFrom(view *View) string { var str string for idx, job := range view.Jobs { - str = str + fmt.Sprintf( - `["%d"][""][%s] [%s]%-6s[white]`, - idx, - widget.rowColor(idx), - widget.jobColor(&job), - job.Name, - ) + var validID = regexp.MustCompile(widget.settings.jobNameRegex) - str = str + "\n" + if validID.MatchString(job.Name) { + str = str + fmt.Sprintf( + `["%d"][""][%s] [%s]%-6s[white]`, + idx, + widget.rowColor(idx), + widget.jobColor(&job), + job.Name, + ) + + str = str + "\n" + } } return str