summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Kost <alezost@gmail.com>2018-08-26 13:11:34 +0300
committerAlex Kost <alezost@gmail.com>2018-08-26 13:11:34 +0300
commit381e10f54310393baaa4ffc42b3c5a335add21c0 (patch)
tree1b68a9844b6f563a4db5aa70c9b2c937ea976ced
parentjobset: Add "B" key binding to Jobset List (diff)
downloademacs-build-farm-381e10f54310393baaa4ffc42b3c5a335add21c0.tar.gz
Rename 'build-farm-build-info-insert-builds-button'
* build-farm-build.el (build-farm-build-info-insert-builds-button): Rename to... (build-farm-info-insert-builds-button): ... this. (build-farm-build-button-action): New procedure (the code is extracted from the above procedure). * build-farm-evaluation.el: Adjust accordingly. * build-farm-jobset.el: Likewise. * build-farm-project.el: Likewise.
-rw-r--r--build-farm-build.el67
-rw-r--r--build-farm-evaluation.el2
-rw-r--r--build-farm-jobset.el4
-rw-r--r--build-farm-project.el2
4 files changed, 39 insertions, 36 deletions
diff --git a/build-farm-build.el b/build-farm-build.el
index bf3f5d5..dd703a1 100644
--- a/build-farm-build.el
+++ b/build-farm-build.el
@@ -117,6 +117,37 @@ If `current-prefix-arg' is specified, just return
:job job
:system system)))
+(defun build-farm-build-button-action (button)
+ "Display latest builds according to BUTTON."
+ (let ((args (build-farm-build-latest-prompt-args
+ :project (button-get button 'project)
+ :jobset (button-get button 'jobset)
+ :job (button-get button 'job)
+ :system (button-get button 'system))))
+ (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."
+ (bui-insert-action-button
+ "Builds"
+ #'build-farm-build-button-action
+ (concat "Show latest builds"
+ (let ((thing (cond (job "job")
+ (system "system")
+ (jobset "jobset")
+ (project "project"))))
+ (if thing
+ (concat " for this " thing)
+ ""))
+ " (with prefix, prompt for all parameters)")
+ 'project project
+ 'jobset jobset
+ 'job job
+ 'system system))
+
(declare-function guix-build-log-mode "guix-build-log" t)
(defun build-farm-build-view-log (id &optional root-url)
@@ -313,39 +344,11 @@ It should be a '%s'-sequence.")
(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."
- (bui-insert-action-button
- "Builds"
- (lambda (btn)
- (let ((args (build-farm-build-latest-prompt-args
- :project (button-get btn 'project)
- :jobset (button-get btn 'jobset)
- :job (button-get btn 'job)
- :system (button-get btn 'system))))
- (apply #'build-farm-get-display
- (build-farm-current-url)
- 'build 'latest args)))
- (concat "Show latest builds"
- (let ((thing (cond (job "job")
- (system "system")
- (jobset "jobset")
- (project "project"))))
- (if thing
- (concat " for this " thing)
- ""))
- " (with prefix, prompt for all parameters)")
- 'project project
- 'jobset jobset
- 'job job
- 'system system))
-
(defun build-farm-build-info-insert-project (project entry)
"Insert PROJECT for build ENTRY at point."
(bui-insert-button project 'build-farm-project)
(bui-insert-indent)
- (build-farm-build-info-insert-builds-button
+ (build-farm-info-insert-builds-button
:project (bui-entry-non-void-value entry 'project)))
(defun build-farm-build-info-insert-jobset (jobset entry)
@@ -356,7 +359,7 @@ It should be a '%s'-sequence.")
jobset)
(build-farm-info-insert-cuirass-jobset jobset))
(bui-insert-indent)
- (build-farm-build-info-insert-builds-button
+ (build-farm-info-insert-builds-button
:project (bui-entry-non-void-value entry 'project)
:jobset (bui-entry-non-void-value entry 'jobset)))
@@ -364,7 +367,7 @@ It should be a '%s'-sequence.")
"Insert JOB for build ENTRY at point."
(bui-format-insert job 'build-farm-info-job)
(bui-insert-indent)
- (build-farm-build-info-insert-builds-button
+ (build-farm-info-insert-builds-button
:project (bui-entry-non-void-value entry 'project)
:jobset (bui-entry-non-void-value entry 'jobset)
:job (bui-entry-non-void-value entry 'job)))
@@ -373,7 +376,7 @@ It should be a '%s'-sequence.")
"Insert SYSTEM for build ENTRY at point."
(bui-format-insert system 'build-farm-info-system)
(bui-insert-indent)
- (build-farm-build-info-insert-builds-button
+ (build-farm-info-insert-builds-button
:system (bui-entry-non-void-value entry 'system)))
(defun build-farm-build-info-insert-url (entry)
diff --git a/build-farm-evaluation.el b/build-farm-evaluation.el
index 6124664..268d775 100644
--- a/build-farm-evaluation.el
+++ b/build-farm-evaluation.el
@@ -86,7 +86,7 @@ command. If nil, always prompt for the number of evaluations."
"Insert info about Cuirass JOBSET at point."
(build-farm-info-insert-cuirass-jobset jobset)
(bui-insert-indent)
- (build-farm-build-info-insert-builds-button
+ (build-farm-info-insert-builds-button
:jobset jobset))
diff --git a/build-farm-jobset.el b/build-farm-jobset.el
index e0645f2..bdd37f3 100644
--- a/build-farm-jobset.el
+++ b/build-farm-jobset.el
@@ -105,7 +105,7 @@
(let ((jobset (bui-entry-non-void-value entry 'name)))
(bui-insert-button project 'build-farm-project)
(bui-insert-indent)
- (build-farm-build-info-insert-builds-button
+ (build-farm-info-insert-builds-button
:project project
:jobset jobset)))
@@ -259,7 +259,7 @@ The BUTTON file name is relative to guix source tree."
(defun build-farm-cuirass-jobset-info-insert-builds (entry)
"Insert 'Builds' button for the jobset ENTRY."
(let ((jobset (bui-entry-non-void-value entry 'name)))
- (build-farm-build-info-insert-builds-button
+ (build-farm-info-insert-builds-button
:jobset jobset))
(bui-newline))
diff --git a/build-farm-project.el b/build-farm-project.el
index 94d9e90..fd1b9e4 100644
--- a/build-farm-project.el
+++ b/build-farm-project.el
@@ -111,7 +111,7 @@
"Insert info about JOBSET of the PROJECT at point."
(build-farm-info-insert-hydra-jobset project jobset)
(bui-insert-indent)
- (build-farm-build-info-insert-builds-button
+ (build-farm-info-insert-builds-button
:project project
:jobset jobset))