diff options
| author | Alex Kost <alezost@gmail.com> | 2018-08-17 23:13:07 +0300 |
|---|---|---|
| committer | Alex Kost <alezost@gmail.com> | 2018-08-17 23:13:07 +0300 |
| commit | f47c0cc56619ca8728c9c600b419c9d238cba5b3 (patch) | |
| tree | 404a78a2efa54c2e707d2ad6595d09fa7ec94647 /build-farm-build.el | |
| parent | build: Show more parameters in Build Info (diff) | |
| download | emacs-build-farm-f47c0cc56619ca8728c9c600b419c9d238cba5b3.tar.gz | |
build: Add "More info" button when needed
* build-farm.el (build-farm-current-url-type): New procedure.
* build-farm-build.el (build-farm-build-info-insert-more-button)
(build-farm-build-info-update-build): New procedures.
(build-farm-build-info-format): Add
'build-farm-build-info-insert-more-button'.
Diffstat (limited to 'build-farm-build.el')
| -rw-r--r-- | build-farm-build.el | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/build-farm-build.el b/build-farm-build.el index 8d6a404..81bf4d4 100644 --- a/build-farm-build.el +++ b/build-farm-build.el @@ -260,6 +260,7 @@ See `build-farm-build-status-alist'." :buffer-name "*Farm Build Info*" :format '((name nil (simple bui-info-heading)) nil + build-farm-build-info-insert-more-button build-farm-build-info-insert-url (queued-time format (time)) (start-time format (time)) @@ -279,6 +280,30 @@ See `build-farm-build-status-alist'." "String for formatting output names of builds. It should be a '%s'-sequence.") +(defun build-farm-build-info-insert-more-button (entry) + "Insert 'More info' button for build ENTRY at point." + (when (and (eq 'hydra (build-farm-current-url-type)) + (bui-void-value? (bui-entry-value entry 'start-time))) + (bui-insert-action-button + "More info" + (lambda (btn) + (build-farm-build-info-update-build (button-get btn 'id))) + "Receive more info on the current build" + 'id (bui-entry-id entry)) + (bui-newline 2))) + +(defun build-farm-build-info-update-build (id) + "Update build with ID in the current build info buffer." + (let ((new-entry (car (bui-get-entries + 'build-farm-build 'info + (list (build-farm-current-url) 'id id))))) + (or new-entry + ;; Actually, this shouldn't happen. + (error "Couldn't receive more info for build %d" id)) + (setf (bui-item-entries bui-item) + (bui-replace-entry (bui-current-entries) id new-entry)) + (bui-redisplay))) + (cl-defun build-farm-build-info-insert-builds-button (&key project jobset job system) "Insert 'Builds' button for PROJECT, JOBSET, JOB, SYSTEM." |
