summary refs log tree commit diff
path: root/emacs/guix-hydra-jobset.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs/guix-hydra-jobset.el')
-rw-r--r--emacs/guix-hydra-jobset.el162
1 files changed, 0 insertions, 162 deletions
diff --git a/emacs/guix-hydra-jobset.el b/emacs/guix-hydra-jobset.el
deleted file mode 100644
index a4a55a36f2..0000000000
--- a/emacs/guix-hydra-jobset.el
+++ /dev/null
@@ -1,162 +0,0 @@
-;;; guix-hydra-jobset.el --- Interface for Hydra jobsets  -*- lexical-binding: t -*-
-
-;; Copyright © 2015 Alex Kost <alezost@gmail.com>
-
-;; This file is part of GNU Guix.
-
-;; GNU Guix is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; GNU Guix is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-
-;; This file provides an interface for displaying Hydra jobsets in
-;; 'list' and 'info' buffers.
-
-;;; Code:
-
-(require 'cl-lib)
-(require 'guix-buffer)
-(require 'guix-list)
-(require 'guix-info)
-(require 'guix-hydra)
-(require 'guix-hydra-build)
-(require 'guix-utils)
-
-(guix-hydra-define-entry-type hydra-jobset
-  :search-types '((project . guix-hydra-jobset-api-url))
-  :filters '(guix-hydra-jobset-filter-id)
-  :filter-names '((nrscheduled . scheduled)
-                  (nrsucceeded . succeeded)
-                  (nrfailed . failed)
-                  (nrtotal . total)))
-
-(defun guix-hydra-jobset-get-display (search-type &rest args)
-  "Search for Hydra builds and show results."
-  (apply #'guix-list-get-display-entries
-         'hydra-jobset search-type args))
-
-
-;;; Defining URLs
-
-(defun guix-hydra-jobset-url (project jobset)
-  "Return Hydra URL of a PROJECT's JOBSET."
-  (guix-hydra-url "jobset/" project "/" jobset))
-
-(defun guix-hydra-jobset-api-url (project)
-  "Return Hydra API URL for jobsets by PROJECT."
-  (guix-hydra-api-url "jobsets"
-    `(("project" . ,project))))
-
-
-;;; Filters for processing raw entries
-
-(defun guix-hydra-jobset-filter-id (entry)
-  "Add 'ID' parameter to 'hydra-jobset' ENTRY."
-  (cons `(id . ,(guix-entry-value entry 'name))
-        entry))
-
-
-;;; Hydra jobset 'info'
-
-(guix-hydra-info-define-interface hydra-jobset
-  :mode-name "Hydra-Jobset-Info"
-  :buffer-name "*Guix Hydra Jobset Info*"
-  :format '((name ignore (simple guix-info-heading))
-            ignore
-            guix-hydra-jobset-info-insert-url
-            (project   format guix-hydra-jobset-info-insert-project)
-            (scheduled format (format guix-hydra-jobset-info-scheduled))
-            (succeeded format (format guix-hydra-jobset-info-succeeded))
-            (failed    format (format guix-hydra-jobset-info-failed))
-            (total     format (format guix-hydra-jobset-info-total))))
-
-(defface guix-hydra-jobset-info-scheduled
-  '((t))
-  "Face used for the number of scheduled builds."
-  :group 'guix-hydra-jobset-info-faces)
-
-(defface guix-hydra-jobset-info-succeeded
-  '((t :inherit guix-hydra-build-status-succeeded))
-  "Face used for the number of succeeded builds."
-  :group 'guix-hydra-jobset-info-faces)
-
-(defface guix-hydra-jobset-info-failed
-  '((t :inherit guix-hydra-build-status-failed))
-  "Face used for the number of failed builds."
-  :group 'guix-hydra-jobset-info-faces)
-
-(defface guix-hydra-jobset-info-total
-  '((t))
-  "Face used for the total number of builds."
-  :group 'guix-hydra-jobset-info-faces)
-
-(defun guix-hydra-jobset-info-insert-project (project entry)
-  "Insert PROJECT button for the jobset ENTRY."
-  (let ((jobset (guix-entry-value entry 'name)))
-    (guix-insert-button
-     project 'guix-hydra-build-project
-     'action (lambda (btn)
-               (let ((args (guix-hydra-build-latest-prompt-args
-                            :project (button-get btn 'project)
-                            :jobset  (button-get btn 'jobset))))
-                 (apply #'guix-hydra-build-get-display
-                        'latest args)))
-     'project project
-     'jobset jobset)))
-
-(defun guix-hydra-jobset-info-insert-url (entry)
-  "Insert Hydra URL for the jobset ENTRY."
-  (guix-insert-button (guix-hydra-jobset-url
-                       (guix-entry-value entry 'project)
-                       (guix-entry-value entry 'name))
-                      'guix-url))
-
-
-;;; Hydra jobset 'list'
-
-(guix-hydra-list-define-interface hydra-jobset
-  :mode-name "Hydra-Jobset-List"
-  :buffer-name "*Guix Hydra Jobset List*"
-  :format '((name nil 25 t)
-            (project nil 10 t)
-            (scheduled nil 12 t)
-            (succeeded nil 12 t)
-            (failed nil 9 t)
-            (total nil 10 t)))
-
-(let ((map guix-hydra-jobset-list-mode-map))
-  (define-key map (kbd "B") 'guix-hydra-jobset-list-latest-builds))
-
-(defun guix-hydra-jobset-list-latest-builds (number &rest args)
-  "Display latest NUMBER of Hydra builds of the current jobset.
-Interactively, prompt for NUMBER.  With prefix argument, prompt
-for all ARGS."
-  (interactive
-   (let ((entry (guix-list-current-entry)))
-     (guix-hydra-build-latest-prompt-args
-      :project (guix-entry-value entry 'project)
-      :jobset  (guix-entry-value entry 'name))))
-  (apply #'guix-hydra-latest-builds number args))
-
-
-;;; Interactive commands
-
-;;;###autoload
-(defun guix-hydra-jobsets (project)
-  "Display jobsets of PROJECT."
-  (interactive (list (guix-hydra-read-project)))
-  (guix-hydra-jobset-get-display 'project project))
-
-(provide 'guix-hydra-jobset)
-
-;;; guix-hydra-jobset.el ends here