From a89e32141f87a6b00b109737b9c1f9208db8c50f Mon Sep 17 00:00:00 2001 From: Jack Morris Date: Wed, 17 Apr 2019 10:24:39 +0100 Subject: [PATCH] Allow users to filter jenkins jobs by regex Allows users to filter the Jenkins jobs shown in the widget by providing a regular expression in the config file. The regex should be specified in the config like so: ``` jobNameRegex: ^[a-z]+.$ ``` Another example: ``` jobNameRegex^[a-z]+\[[0-9]+\]$ ``` --- modules/jenkins/widget.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/modules/jenkins/widget.go b/modules/jenkins/widget.go index c4446744..df687bfd 100644 --- a/modules/jenkins/widget.go +++ b/modules/jenkins/widget.go @@ -95,15 +95,19 @@ func (widget *Widget) apiKey() string { 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, - ) + regex := wtf.Config.UString("wtf.mods.jenkins.jobNameRegex", ".*") + var validID = regexp.MustCompile(regex) + 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" + str = str + "\n" + } } return str