summaryrefslogtreecommitdiff
path: root/build-farm-jobset.el
diff options
context:
space:
mode:
authorAlex Kost <alezost@gmail.com>2018-08-18 22:45:41 +0300
committerAlex Kost <alezost@gmail.com>2018-08-26 00:06:26 +0300
commit126374fd328e66299beee5875f7ea5437302f340 (patch)
tree16df5bc6a1c57b4dfb44ccb8da6a93ecbf2107ed /build-farm-jobset.el
parenturl: Use nil for 'json-false' value (diff)
downloademacs-build-farm-126374fd328e66299beee5875f7ea5437302f340.tar.gz
Rename 'jobset' interface to 'hydra-jobset'
Cuirass and Hydra jobsets are completely different, so there will be a separate interface for Cuirass jobsets. * build-farm.el: Update Emacs requirement to 24.4 because 'subr-x' library is needed now. (build-farm-info-insert-jobset): Rename to... (build-farm-info-insert-hydra-jobset): ... this. * build-farm-build.el (build-farm-build-info-insert-jobset): Adjust accordingly. * build-farm-project.el (build-farm-project-info-insert-jobset): Likewise. * build-farm-url.el (build-farm-jobset-api-url): Rename to... (build-farm-hydra-jobset-api-url): ... this. * build-farm-jobset.el: Rename 'jobset' to 'hydra-jobset' everywhere.
Diffstat (limited to 'build-farm-jobset.el')
-rw-r--r--build-farm-jobset.el118
1 files changed, 61 insertions, 57 deletions
diff --git a/build-farm-jobset.el b/build-farm-jobset.el
index 94ebae0..87cffdc 100644
--- a/build-farm-jobset.el
+++ b/build-farm-jobset.el
@@ -28,64 +28,75 @@
(require 'build-farm-build)
(require 'build-farm-url)
-(build-farm-define-entry-type jobset
- :search-types '((project . build-farm-jobset-api-url))
- :filters '(build-farm-jobset-filter-id)
+
+;;; Common for Hydra and Cuirass
+
+(defun build-farm-jobset-info-insert-url (entry)
+ "Insert URL for the jobset ENTRY."
+ (bui-insert-button (build-farm-jobset-url
+ :root-url (build-farm-current-url)
+ :jobset-id (bui-entry-id entry))
+ 'bui-url)
+ (bui-newline))
+
+
+;;; Hydra common
+
+(build-farm-define-entry-type hydra-jobset
+ :search-types '((project . build-farm-hydra-jobset-api-url))
+ :filters '(build-farm-hydra-jobset-filter-id)
:filter-names '((nrscheduled . scheduled)
(nrsucceeded . succeeded)
(nrfailed . failed)
(nrtotal . total)))
-(defun build-farm-jobset-id (project jobset)
+(defun build-farm-hydra-jobset-id (project jobset)
"Return jobset ID from PROJECT name and JOBSET name."
(concat project "/" jobset))
-
-;;; Filters for processing raw entries
-
-(defun build-farm-jobset-filter-id (entry)
+(defun build-farm-hydra-jobset-filter-id (entry)
"Add 'ID' parameter to 'jobset' ENTRY."
- (cons `(id . ,(build-farm-jobset-id
+ (cons `(id . ,(build-farm-hydra-jobset-id
(bui-entry-non-void-value entry 'project)
(bui-entry-non-void-value entry 'name)))
entry))
-;;; Jobset 'info'
+;;; Hydra Jobset 'info'
-(build-farm-define-interface jobset info
- :mode-name "Farm-Jobset-Info"
+(build-farm-define-interface hydra-jobset info
+ :mode-name "Hydra-Jobset-Info"
:buffer-name "*Farm Jobset Info*"
:format '((name nil (simple bui-info-heading))
nil
build-farm-jobset-info-insert-url
- (project format build-farm-jobset-info-insert-project)
- (scheduled format (format build-farm-jobset-info-scheduled))
- (succeeded format (format build-farm-jobset-info-succeeded))
- (failed format (format build-farm-jobset-info-failed))
- (total format (format build-farm-jobset-info-total))))
+ (project format build-farm-hydra-jobset-info-insert-project)
+ (scheduled format (format build-farm-hydra-jobset-info-scheduled))
+ (succeeded format (format build-farm-hydra-jobset-info-succeeded))
+ (failed format (format build-farm-hydra-jobset-info-failed))
+ (total format (format build-farm-hydra-jobset-info-total))))
-(defface build-farm-jobset-info-scheduled
+(defface build-farm-hydra-jobset-info-scheduled
'((t))
"Face used for the number of scheduled builds."
- :group 'build-farm-jobset-info-faces)
+ :group 'build-farm-hydra-jobset-info-faces)
-(defface build-farm-jobset-info-succeeded
+(defface build-farm-hydra-jobset-info-succeeded
'((t :inherit build-farm-build-status-succeeded))
"Face used for the number of succeeded builds."
- :group 'build-farm-jobset-info-faces)
+ :group 'build-farm-hydra-jobset-info-faces)
-(defface build-farm-jobset-info-failed
+(defface build-farm-hydra-jobset-info-failed
'((t :inherit build-farm-build-status-failed))
"Face used for the number of failed builds."
- :group 'build-farm-jobset-info-faces)
+ :group 'build-farm-hydra-jobset-info-faces)
-(defface build-farm-jobset-info-total
+(defface build-farm-hydra-jobset-info-total
'((t))
"Face used for the total number of builds."
- :group 'build-farm-jobset-info-faces)
+ :group 'build-farm-hydra-jobset-info-faces)
-(defun build-farm-jobset-info-insert-project (project entry)
+(defun build-farm-hydra-jobset-info-insert-project (project entry)
"Insert PROJECT button for the jobset ENTRY."
(let ((jobset (bui-entry-non-void-value entry 'name)))
(bui-insert-button project 'build-farm-project)
@@ -94,71 +105,63 @@
:project project
:jobset jobset)))
-(defun build-farm-jobset-info-insert-url (entry)
- "Insert URL for the jobset ENTRY."
- (bui-insert-button (build-farm-jobset-url
- :root-url (build-farm-current-url)
- :jobset-id (bui-entry-id entry))
- 'bui-url)
- (bui-newline))
-
-;;; Jobset 'list'
+;;; Hydra Jobset 'list'
-(build-farm-define-interface jobset list
+(build-farm-define-interface hydra-jobset list
:describe-function 'build-farm-list-describe
- :mode-name "Farm-Jobset-List"
+ :mode-name "Hydra-Jobset-List"
:buffer-name "*Farm Jobsets*"
- :format '((name build-farm-jobset-list-get-name 25 t)
+ :format '((name build-farm-hydra-jobset-list-get-name 25 t)
(project nil 10 t)
(scheduled nil 12 t)
(succeeded nil 12 t)
(failed nil 9 t)
(total nil 10 t))
- :hint 'build-farm-jobset-list-hint)
+ :hint 'build-farm-hydra-jobset-list-hint)
-(let ((map build-farm-jobset-list-mode-map))
- (define-key map (kbd "B") 'build-farm-jobset-list-latest-builds))
+(let ((map build-farm-hydra-jobset-list-mode-map))
+ (define-key map (kbd "B") 'build-farm-hydra-jobset-list-latest-builds))
-(defface build-farm-jobset-list-status-scheduled
+(defface build-farm-hydra-jobset-list-status-scheduled
'((t))
"Face used for a jobset name if there are scheduled jobs."
- :group 'build-farm-jobset-list-faces)
+ :group 'build-farm-hydra-jobset-list-faces)
-(defface build-farm-jobset-list-status-succeeded
+(defface build-farm-hydra-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)
+ :group 'build-farm-hydra-jobset-list-faces)
-(defface build-farm-jobset-list-status-failed
+(defface build-farm-hydra-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)
+ :group 'build-farm-hydra-jobset-list-faces)
-(defvar build-farm-jobset-list-default-hint
- '(("\\[build-farm-jobset-list-latest-builds]")
+(defvar build-farm-hydra-jobset-list-default-hint
+ '(("\\[build-farm-hydra-jobset-list-latest-builds]")
" show latest builds of the current jobset;\n"))
-(defun build-farm-jobset-list-hint ()
+(defun build-farm-hydra-jobset-list-hint ()
"Return hint string for a jobset-list buffer."
(bui-format-hints
- build-farm-jobset-list-default-hint
+ build-farm-hydra-jobset-list-default-hint
(bui-default-hint)))
-(defun build-farm-jobset-list-get-name (name entry)
+(defun build-farm-hydra-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)
+ 'build-farm-hydra-jobset-list-status-failed)
((> (bui-entry-value entry 'scheduled) 0)
- 'build-farm-jobset-list-status-scheduled)
+ 'build-farm-hydra-jobset-list-status-scheduled)
((= (bui-entry-value entry 'total)
(bui-entry-value entry 'succeeded))
- 'build-farm-jobset-list-status-succeeded))))
+ 'build-farm-hydra-jobset-list-status-succeeded))))
-(defun build-farm-jobset-list-latest-builds (number &rest args)
+(defun build-farm-hydra-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
NUMBER. With prefix argument, prompt for it and for the other
@@ -178,7 +181,8 @@ ARGS."
(defun build-farm-jobsets (project)
"Display jobsets of PROJECT."
(interactive (list (build-farm-read-project)))
- (build-farm-get-display build-farm-url 'jobset 'project project))
+ (build-farm-get-display build-farm-url 'hydra-jobset
+ 'project project))
;; Info returned for multiple jobsets (from "api/jobsets") and for a
;; single jobset (from "jobset") are completely different! Compare: