diff options
| -rw-r--r-- | build-farm-jobset.el | 29 | ||||
| -rw-r--r-- | build-farm-url.el | 11 |
2 files changed, 33 insertions, 7 deletions
diff --git a/build-farm-jobset.el b/build-farm-jobset.el index 705c663..11953e4 100644 --- a/build-farm-jobset.el +++ b/build-farm-jobset.el @@ -36,6 +36,10 @@ (nrfailed . failed) (nrtotal . total))) +(defun build-farm-jobset-id (project jobset) + "Return jobset ID from PROJECT name and JOBSET name." + (concat project "/" jobset)) + (defun build-farm-jobset-get-display (search-type &rest args) "Search for jobsets and show results. See `build-farm-search-url' for the meaning of SEARCH-TYPE and ARGS." @@ -47,7 +51,9 @@ See `build-farm-search-url' for the meaning of SEARCH-TYPE and ARGS." (defun build-farm-jobset-filter-id (entry) "Add 'ID' parameter to 'jobset' ENTRY." - (cons `(id . ,(bui-entry-non-void-value entry 'name)) + (cons `(id . ,(build-farm-jobset-id + (bui-entry-non-void-value entry 'project) + (bui-entry-non-void-value entry 'name))) entry)) @@ -101,9 +107,7 @@ See `build-farm-search-url' for the meaning of SEARCH-TYPE and ARGS." (defun build-farm-jobset-info-insert-url (entry) "Insert URL for the jobset ENTRY." - (bui-insert-button (build-farm-jobset-url - (bui-entry-non-void-value entry 'project) - (bui-entry-non-void-value entry 'name)) + (bui-insert-button (build-farm-jobset-url (bui-entry-id entry)) 'bui-url) (bui-newline)) @@ -155,6 +159,23 @@ for all ARGS." (interactive (list (build-farm-read-project))) (build-farm-jobset-get-display 'project project)) +;; Info returned for multiple jobsets (from "api/jobsets") and for a +;; single jobset (from "jobset") are completely different! Compare: +;; +;; (build-farm-receive-data "https://hydra.nixos.org/jobset/hydra/master") +;; (build-farm-receive-data "https://hydra.nixos.org/api/jobsets?project=hydra") +;; +;; How this duality can be supported? Maybe make another +;; "jobset-configuration" interface? Anyway, `build-farm-jobset' +;; command is not available yet. + +;; (defun build-farm-jobset (project jobset) +;; "Display JOBSET of PROJECT." +;; (interactive (list (build-farm-read-project) +;; (build-farm-read-jobset project))) +;; (build-farm-jobset-get-display +;; 'id (build-farm-jobset-id project jobset))) + (provide 'build-farm-jobset) ;;; build-farm-jobset.el ends here diff --git a/build-farm-url.el b/build-farm-url.el index 1b47d64..0280d24 100644 --- a/build-farm-url.el +++ b/build-farm-url.el @@ -123,9 +123,14 @@ Skip ARG, if VALUE is nil or an empty string." (build-farm-api-url "queue" `(("nr" . ,number)))) -(defun build-farm-jobset-url (project jobset) - "Return URL of a PROJECT's JOBSET." - (build-farm-url "jobset/" project "/" jobset)) +(defun build-farm-jobset-url (project-or-id &optional jobset) + "Return URL of a PROJECT's JOBSET. +If a single argument (PROJECT-OR-ID) is specified, it should have +a form 'project/jobset'." + (let ((jobset-id (if jobset + (concat project-or-id "/" jobset) + project-or-id))) + (build-farm-url "jobset/" jobset-id))) (defun build-farm-jobset-api-url (project) "Return API URL for jobsets by PROJECT." |
