diff options
| author | Alex Kost <alezost@gmail.com> | 2018-08-26 13:43:39 +0300 |
|---|---|---|
| committer | Alex Kost <alezost@gmail.com> | 2018-08-26 13:43:39 +0300 |
| commit | be01b4767f81e7a6ab1111c24831530bee3a77e2 (patch) | |
| tree | 75ca429d1ce9c7494193d1c772b7e9802d32a878 | |
| parent | Rename 'build-farm-build-info-insert-builds-button' (diff) | |
| download | emacs-build-farm-be01b4767f81e7a6ab1111c24831530bee3a77e2.tar.gz | |
Add system buttons to Jobset Info
* build-farm.el (build-farm-info-system): Inherit from 'button' face.
* build-farm-build.el (build-farm-system): New button type.
(build-farm-build-button-system-action)
(build-farm-info-insert-system-button)
(build-farm-info-insert-systems): New procedures.
* build-farm-jobset.el (build-farm-cuirass-jobset-args-info-format): Use
'build-farm-info-insert-systems'.
| -rw-r--r-- | build-farm-build.el | 32 | ||||
| -rw-r--r-- | build-farm-jobset.el | 2 | ||||
| -rw-r--r-- | build-farm.el | 2 |
3 files changed, 33 insertions, 3 deletions
diff --git a/build-farm-build.el b/build-farm-build.el index dd703a1..5ecf80e 100644 --- a/build-farm-build.el +++ b/build-farm-build.el @@ -55,6 +55,13 @@ for the number of builds." :type 'integer :group 'build-farm-build) +(define-button-type 'build-farm-system + :supertype 'bui + 'action #'build-farm-build-button-action + 'help-echo (concat "Show latest builds for this system " + "(with prefix, prompt for all parameters)") + 'face 'build-farm-info-system) + (defun build-farm-set-number-of-builds (number) "Set `build-farm-number-of-builds' to NUMBER." (interactive (list (build-farm-build-read-number))) @@ -128,6 +135,14 @@ If `current-prefix-arg' is specified, just return (build-farm-current-url) 'build 'latest args))) +(defun build-farm-build-button-system-action (button) + "Display latest builds according to system BUTTON." + (let ((args (build-farm-build-latest-prompt-args + :system (button-label button)))) + (apply #'build-farm-get-display + (build-farm-current-url) + 'build 'latest args))) + (cl-defun build-farm-info-insert-builds-button (&key project jobset job system) "Insert 'Builds' button for PROJECT, JOBSET, JOB, SYSTEM." @@ -148,6 +163,21 @@ If `current-prefix-arg' is specified, just return 'job job 'system system)) +(cl-defun build-farm-info-insert-system-button + (system &key project jobset job) + "Insert button to display builds for SYSTEM, PROJECT, JOBSET, JOB." + (bui-insert-button system 'build-farm-system + 'project project + 'jobset jobset + 'job job + 'system system)) + +(defun build-farm-info-insert-systems (systems) + "Insert SYSTEMS at point." + (bui-info-insert-value-format + systems 'build-farm-system + 'action #'build-farm-build-button-system-action)) + (declare-function guix-build-log-mode "guix-build-log" t) (defun build-farm-build-view-log (id &optional root-url) @@ -374,7 +404,7 @@ It should be a '%s'-sequence.") (defun build-farm-build-info-insert-system (system entry) "Insert SYSTEM for build ENTRY at point." - (bui-format-insert system 'build-farm-info-system) + (insert system) (bui-insert-indent) (build-farm-info-insert-builds-button :system (bui-entry-non-void-value entry 'system))) diff --git a/build-farm-jobset.el b/build-farm-jobset.el index bdd37f3..8419d36 100644 --- a/build-farm-jobset.el +++ b/build-farm-jobset.el @@ -243,7 +243,7 @@ The BUTTON file name is relative to guix source tree." (bui-define-interface build-farm-cuirass-jobset-args info :format '((subset format (format)) - (systems format (format))) ; TODO make system buttons + (systems format (build-farm-info-insert-systems))) :reduced? t) (bui-define-interface build-farm-cuirass-jobset-inputs info diff --git a/build-farm.el b/build-farm.el index 089b29c..a1ab1a3 100644 --- a/build-farm.el +++ b/build-farm.el @@ -86,7 +86,7 @@ :group 'build-farm-faces) (defface build-farm-info-system - '((t)) + '((t :inherit button)) "Face for system names in 'info' buffers." :group 'build-farm-faces) |
