aboutsummaryrefslogtreecommitdiff
path: root/buildbot-revision.el
diff options
context:
space:
mode:
authorYuchen Pei <hi@ypei.me>2023-03-25 01:05:54 +1100
committerYuchen Pei <hi@ypei.me>2023-03-25 01:05:54 +1100
commit20fd138b70a92fa3dc8a8a44e95fa2be57da092f (patch)
tree4761ca11bf0e50255f9939d72dbd20957250c9fa /buildbot-revision.el
parent94172a6c655ea4aefe2960aa5db9fec77130e87d (diff)
Unify the three modes into one (view mode)
Also, now one can press return at any header to go to the respective object. For example, in step view, one can jump to the revision view by pressing return at the revision header on top
Diffstat (limited to 'buildbot-revision.el')
-rw-r--r--buildbot-revision.el84
1 files changed, 0 insertions, 84 deletions
diff --git a/buildbot-revision.el b/buildbot-revision.el
deleted file mode 100644
index 78703ea..0000000
--- a/buildbot-revision.el
+++ /dev/null
@@ -1,84 +0,0 @@
-;; -*- lexical-binding: t; -*-
-(require 'buildbot-client)
-(require 'buildbot-view)
-
-(defvar-local buildbot-revision-revision-id nil)
-(defvar-local buildbot-revision-info nil)
-
-(define-derived-mode buildbot-revision-mode buildbot-view-mode "Buildbot revision"
- "Buildbot view for a revision")
-
-(defun buildbot-revision-buffer-name (revision)
- (concat "*buildbot revision " revision "*"))
-
-(defun buildbot-revision-load (revision)
- (let ((buffer-name (buildbot-revision-buffer-name revision)))
- (with-current-buffer (get-buffer-create buffer-name)
- (buildbot-revision-mode)
- (setq buildbot-revision-revision-id revision)
- (buildbot-revision-update))
- (switch-to-buffer buffer-name)))
-
-(defun buildbot-revision-update ()
- (unless (derived-mode-p 'buildbot-revision-mode)
- (error "Not in buildbot revision mode"))
- (let ((inhibit-read-only t))
- (erase-buffer)
- (let ((change
- (buildbot-get-change-by-revision buildbot-revision-revision-id)))
- (setq buildbot-revision-info
- (buildbot-revision-get-info change))
- (insert (buildbot-revision-format buildbot-revision-info
- (alist-get 'builds change)))
- (goto-char (point-min)))))
-
-(defun buildbot-revision-open (revision)
- (interactive "sRevision (commit hash): ")
- (buildbot-revision-load revision))
-
-(defun buildbot-revision-reload ()
- (interactive)
- (buildbot-revision-update))
-(define-key buildbot-revision-mode-map "g" 'buildbot-revision-reload)
-
-(defun buildbot-revision-format (revision-info builds)
- (concat
- (buildbot-view-format-revision-info revision-info)
- "\n"
- (string-join
- (mapcar 'buildbot-view-format-build builds)
- "\n")))
-
-(defun buildbot-revision-get-info (change)
- (list (cons 'revision (alist-get 'revision change))
- (cons 'author (alist-get 'author change))
- (cons 'created-at (buildbot-format-epoch-time
- (alist-get 'created_at
- (alist-get 'sourcestamp change))))
- (cons 'comments (alist-get 'comments change))
- (cons 'build-stats (buildbot-revision-get-build-stats
- (alist-get 'builds change)))))
-
-(defun buildbot-revision-get-build-stats (builds)
- (let ((results '((success . 0)
- (failure . 0)
- (pending . 0)))
- status)
- (seq-do
- (lambda (build)
- (setq status (buildbot-build-status build))
- (setf (alist-get status results)
- (1+ (alist-get status results))))
- builds)
- results))
-
-(defun buildbot-revision-open-build ()
- (interactive)
- (let ((build (get-text-property (point) 'build)))
- (unless build
- (error "Not at a build"))
- (buildbot-build-load build buildbot-revision-info)))
-(define-key buildbot-revision-mode-map (kbd "<return>")
- 'buildbot-revision-open-build)
-
-(provide 'buildbot-revision)