summaryrefslogtreecommitdiff
path: root/build-farm-jobset.el
diff options
context:
space:
mode:
authorAlex Kost <alezost@gmail.com>2018-07-22 19:46:08 +0300
committerAlex Kost <alezost@gmail.com>2018-07-27 12:14:24 +0300
commita36d80b8748de9c170749424b1c10b5ee74936d3 (patch)
tree36c5bb4f3d59f0acc909d843898ed882ee93b401 /build-farm-jobset.el
parentAdd project url to Project Info buffer (diff)
downloademacs-build-farm-a36d80b8748de9c170749424b1c10b5ee74936d3.tar.gz
Colorize names of jobsets in Jobset List buffer
Similarly to the Hydra web interface. * build-farm-jobset.el (build-farm-jobset-list-status-scheduled) (build-farm-jobset-list-status-succeeded) (build-farm-jobset-list-status-failed): New faces. (build-farm-jobset-list-get-name): New function. (build-farm-jobset-list-format): Use it.
Diffstat (limited to 'build-farm-jobset.el')
-rw-r--r--build-farm-jobset.el30
1 files changed, 29 insertions, 1 deletions
diff --git a/build-farm-jobset.el b/build-farm-jobset.el
index bf97aa6..94ebae0 100644
--- a/build-farm-jobset.el
+++ b/build-farm-jobset.el
@@ -109,7 +109,7 @@
:describe-function 'build-farm-list-describe
:mode-name "Farm-Jobset-List"
:buffer-name "*Farm Jobsets*"
- :format '((name nil 25 t)
+ :format '((name build-farm-jobset-list-get-name 25 t)
(project nil 10 t)
(scheduled nil 12 t)
(succeeded nil 12 t)
@@ -120,6 +120,21 @@
(let ((map build-farm-jobset-list-mode-map))
(define-key map (kbd "B") 'build-farm-jobset-list-latest-builds))
+(defface build-farm-jobset-list-status-scheduled
+ '((t))
+ "Face used for a jobset name if there are scheduled jobs."
+ :group 'build-farm-jobset-list-faces)
+
+(defface build-farm-jobset-list-status-succeeded
+ '((t :inherit build-farm-build-status-succeeded))
+ "Face used for a jobset name if there are no failed or scheduled jobs."
+ :group 'build-farm-jobset-list-faces)
+
+(defface build-farm-jobset-list-status-failed
+ '((t :inherit build-farm-build-status-failed))
+ "Face used for a jobset name if there are failed jobs."
+ :group 'build-farm-jobset-list-faces)
+
(defvar build-farm-jobset-list-default-hint
'(("\\[build-farm-jobset-list-latest-builds]")
" show latest builds of the current jobset;\n"))
@@ -130,6 +145,19 @@
build-farm-jobset-list-default-hint
(bui-default-hint)))
+(defun build-farm-jobset-list-get-name (name entry)
+ "Return NAME of the jobset ENTRY.
+Colorize it with an appropriate face if needed."
+ (bui-get-string
+ name
+ (cond ((> (bui-entry-value entry 'failed) 0)
+ 'build-farm-jobset-list-status-failed)
+ ((> (bui-entry-value entry 'scheduled) 0)
+ 'build-farm-jobset-list-status-scheduled)
+ ((= (bui-entry-value entry 'total)
+ (bui-entry-value entry 'succeeded))
+ 'build-farm-jobset-list-status-succeeded))))
+
(defun build-farm-jobset-list-latest-builds (number &rest args)
"Display latest NUMBER of builds of the current jobset.
Interactively, use `build-farm-number-of-builds' variable for