summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build-farm-build.el9
-rw-r--r--build-farm.el7
2 files changed, 15 insertions, 1 deletions
diff --git a/build-farm-build.el b/build-farm-build.el
index 83345e8..56e8066 100644
--- a/build-farm-build.el
+++ b/build-farm-build.el
@@ -29,7 +29,8 @@
(require 'build-farm-url)
(build-farm-define-entry-type build
- :search-types '((latest . build-farm-build-latest-api-url)
+ :search-types '((id . build-farm-build-url)
+ (latest . build-farm-build-latest-api-url)
(queue . build-farm-build-queue-api-url))
:filters '(build-farm-build-filter-status)
:filter-names '((nixname . name)
@@ -406,6 +407,12 @@ NUMBER. With prefix argument, prompt for it."
build-farm-number-of-builds)))
(build-farm-get-display build-farm-url 'build 'queue number))
+;;;###autoload
+(defun build-farm-build (id)
+ "Find build by its ID and display it."
+ (interactive "nBuild ID: ")
+ (build-farm-get-display build-farm-url 'build 'id id))
+
(provide 'build-farm-build)
;;; build-farm-build.el ends here
diff --git a/build-farm.el b/build-farm.el
index 4c72512..969b098 100644
--- a/build-farm.el
+++ b/build-farm.el
@@ -37,6 +37,7 @@
;;
;; - `build-farm-latest-builds'
;; - `build-farm-queued-builds'
+;; - `build-farm-build'
;; - `build-farm-jobsets'
;; - `build-farm-projects'
;; - `build-farm-project'
@@ -206,6 +207,12 @@ SEARCH-TYPE and ARGS."
(let* ((url (apply #'build-farm-search-url
root-url entry-type search-type args))
(raw-entries (build-farm-receive-data url))
+ (raw-entries (cond
+ ((eq search-type 'id)
+ ;; We expect multiple entries so wrap a single
+ ;; ID entry into a list.
+ (list raw-entries))
+ (t raw-entries)))
(entries (apply #'build-farm-modify-objects
raw-entries
(build-farm-filters entry-type))))