diff options
| author | Alex Kost <alezost@gmail.com> | 2018-08-25 23:58:49 +0300 |
|---|---|---|
| committer | Alex Kost <alezost@gmail.com> | 2018-08-26 00:06:26 +0300 |
| commit | 8834f4617cc084bb5c4b09569bcc06f5dfa301d3 (patch) | |
| tree | c9086ad345a9ecddafcd431983210d89507819da /build-farm-popup.el | |
| parent | jobset: Add ID parameter if it is missing (diff) | |
| download | emacs-build-farm-8834f4617cc084bb5c4b09569bcc06f5dfa301d3.tar.gz | |
Add interface for Cuirass evaluations
* build-farm-url.el (build-farm-evaluation-url)
(build-farm-latest-evaluations-api-url): New procedures.
* build-farm-evaluation.el: New file.
(build-farm-latest-evaluations): New command.
* build-farm-popup.el (build-farm-popup): Add sub-popup for evaluations.
(build-farm-evaluation-popup-maybe)
(build-farm-popup-format-number-of-evaluations)
(build-farm-popup-latest-evaluations): New procedures.
Diffstat (limited to 'build-farm-popup.el')
| -rw-r--r-- | build-farm-popup.el | 64 |
1 files changed, 50 insertions, 14 deletions
diff --git a/build-farm-popup.el b/build-farm-popup.el index 61dd933..b5b5b5b 100644 --- a/build-farm-popup.el +++ b/build-farm-popup.el @@ -26,6 +26,7 @@ (require 'magit-popup) (require 'build-farm-url) (require 'build-farm-build) +(require 'build-farm-evaluation) (defgroup build-farm-popup nil "Variables for popup interface for build farm commands." @@ -40,12 +41,38 @@ build-farm-popup-format-url)) :actions '((?p "projects" build-farm-projects) (?j "jobsets" build-farm-jobsets) - (?b "builds" build-farm-build-popup))) + (?b "builds" build-farm-build-popup) + (?e "evaluations" build-farm-evaluation-popup-maybe))) ;;;###autoload (defalias 'build-farm #'build-farm-popup "Popup interface for the available build farm commands.") +(defun build-farm-popup-variable-value (var-name) + "Return string formatted for popup buffer. +String is made of variable VAR-NAME and its value." + (concat (propertize (symbol-name var-name) + 'face font-lock-variable-name-face) + " " + (propertize (prin1-to-string (symbol-value var-name)) + 'face 'magit-popup-option-value))) + +(defun build-farm-popup-format-url () + "Return URL string, formatted for '\\[build-farm]'." + (build-farm-popup-variable-value 'build-farm-url)) + +(defun build-farm-evaluation-popup-maybe (&optional arg) + "Display popup for evaluations if it is supported. +ARG is passed to `build-farm-evaluation-popup'." + (interactive "P") + (if (eq 'hydra (build-farm-url-type)) + (error "Sorry, Hydra evaluations are not supported because of +<https://github.com/NixOS/hydra/issues/582>") + (build-farm-evaluation-popup arg))) + + +;;; Builds + (magit-define-popup build-farm-build-popup "Show popup buffer for builds." 'build-farm-popup @@ -78,19 +105,6 @@ See `completing-read' for PROMPT and INITIAL-INPUT." (magit-popup-get-args)) :project))) -(defun build-farm-popup-variable-value (var-name) - "Return string formatted for popup buffer. -String is made of variable VAR-NAME and its value." - (concat (propertize (symbol-name var-name) - 'face font-lock-variable-name-face) - " " - (propertize (prin1-to-string (symbol-value var-name)) - 'face 'magit-popup-option-value))) - -(defun build-farm-popup-format-url () - "Return URL string, formatted for '\\[build-farm]'." - (build-farm-popup-variable-value 'build-farm-url)) - (defun build-farm-popup-format-number-of-builds () "Return number of builds, formatted for '\\[build-farm-build-popup]'." (build-farm-popup-variable-value 'build-farm-number-of-builds)) @@ -122,6 +136,28 @@ ARGS are read from the current popup buffer." (interactive) (build-farm-queued-builds build-farm-number-of-builds)) + +;;; Evaluations + +(magit-define-popup build-farm-evaluation-popup + "Show popup buffer for evaluations." + 'build-farm-popup + :variables '((?n "number" + build-farm-set-number-of-evaluations + build-farm-popup-format-number-of-evaluations)) + :actions '((?l "latest" build-farm-popup-latest-evaluations))) + +(defun build-farm-popup-format-number-of-evaluations () + "Return number of evaluations for '\\[build-farm-evaluation-popup]'." + (build-farm-popup-variable-value 'build-farm-number-of-evaluations)) + +(defun build-farm-popup-latest-evaluations () + "Display `build-farm-number-of-evaluations' of latest evaluations." + (interactive) + (build-farm-latest-evaluations + (or build-farm-number-of-evaluations + (build-farm-evaluation-read-number)))) + (provide 'build-farm-popup) ;;; build-farm-popup.el ends here |
