aboutsummaryrefslogtreecommitdiff
path: root/emacs/guix-ui-location.el
blob: 0027c1fba8eddc1f976ec447955c75f4b5c796f7 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
;;; guix-ui-location.el --- Interface for displaying package locations

;; Copyright © 2016 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 Location as published by
;; the Free Software Foundation, either version 3 of the Location, 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 Location for more details.

;; You should have received a copy of the GNU General Public Location
;; along with this program.  If not, see <http://www.gnu.org/locations/>.

;;; Commentary:

;; This file provides a 'list' interface for displaying locations of Guix
;; packages.

;;; Code:

(require 'guix-buffer)
(require 'guix-list)
(require 'guix-location)
(require 'guix-backend)

(guix-define-entry-type location)

(defun guix-location-get-entries ()
  "Receive 'package location' entries."
  (guix-eval-read "(package-location-entries)"))


;;; Location 'list'

(guix-list-define-interface location
  :buffer-name "*Guix Package Locations*"
  :get-entries-function 'guix-location-get-entries
  :format '((location guix-location-list-file-name-specification 50 t)
            (number-of-packages nil 10 guix-list-sort-numerically-1
                                :right-align t))
  :sort-key '(location))

(let ((map guix-location-list-mode-map))
  (define-key map (kbd "RET") 'guix-location-list-show-packages)
  ;; "Location Info" buffer is not defined (it would be useless), so
  ;; unbind "i" key (by default, it is used to display Info buffer).
  (define-key map (kbd "i") nil))

(defun guix-location-list-file-name-specification (location &optional _)
  "Return LOCATION button specification for `tabulated-list-entries'."
  (list location
        'face 'guix-list-file-name
        'action (lambda (btn)
                  (guix-find-location (button-get btn 'location)))
        'follow-link t
        'help-echo (concat "Find location: " location)
        'location location))

(declare-function guix-packages-by-location "guix-ui-package")

(defun guix-location-list-show-packages ()
  "Display packages placed in the location at point."
  (interactive)
  (guix-packages-by-location (guix-list-current-id)))


;;; Interactive commands

;;;###autoload
(defun guix-locations ()
  "Display locations of the Guix packages."
  (interactive)
  (guix-list-get-display-entries 'location))

(provide 'guix-ui-location)

;;; guix-ui-location.el ends here
ref='/guix/commit/gnu/packages/chromium.scm?id=c263cfdcde0402cf44be7b14841d567f00e0af11'>Merge branch 'master' into core-updatesMarius Bakke 2020-05-06gnu: ungoogled-chromium: Update to 81.0.4044.138-0.c2a89fb [security fixes]....Marius Bakke 2020-04-30Merge branch 'master' into core-updates...Marius Bakke 2020-04-28gnu: ungoogled-chromium: Update to 81.0.4044.129-0.c2a89fb [security fixes]....Marius Bakke 2020-04-23Merge branch 'master' into core-updates...Marius Bakke 2020-04-22gnu: ungoogled-chromium: Update to 81.0.4044.122-0.31d6e60 [security fixes]....Marius Bakke 2020-04-19Merge branch 'master' into core-updatesMarius Bakke 2020-04-17gnu: ungoogled-chromium: Update to 81.0.4044.113-0.b484ad4 [fixes CVE-2020-64......Marius Bakke 2020-04-13gnu: icu4c: Remove redundant icu4c-66.1 variable....Marius Bakke 2020-04-13Merge branch 'master' into core-updatesMarius Bakke 2020-04-12gnu: ungoogled-chromium: Update to 81.0.4044.92-0.b484ad4 [security fixes]....Marius Bakke 2020-04-08Merge branch 'master' into core-updates...Marius Bakke 2020-04-03gnu: ungoogled-chromium: Update to 80.0.3987.163-0.516e2d9....Marius Bakke 2020-04-01gnu: ungoogled-chromium: Update to 80.0.3987.162-0.516e2d9 [security fixes]....Marius Bakke 2020-03-21Merge branch 'master' into core-updatesMarius Bakke 2020-03-19gnu: ungoogled-chromium: Update to 80.0.3987.149-0.516e2d9 [security fixes]....Marius Bakke 2020-03-10Merge branch 'master' into core-updatesMarius Bakke 2020-03-06gnu: ungoogled-chromium: Increase max-silent-time....Marius Bakke 2020-03-05gnu: Remove ld-wrapper-next....Marius Bakke 2020-03-04gnu: ungoogled-chromium: Update to 80.0.3987.132-0.7e68f18 [fixes CVE-2020-64......Marius Bakke 2020-02-25gnu: ungoogled-chromium: Update to 80.0.3987.122-0.bb952f1 [security fixes]....Marius Bakke 2020-02-25gnu: ungoogled-chromium-wayland: Fix build....Marius Bakke 2020-02-25gnu: ungoogled-chromium: Add license information about preserved files....Marius Bakke 2020-02-24gnu: ungoogled-chromium: Update to 80.0.3987.116-0.bb952f1....Marius Bakke 2020-02-24gnu: Add ld wrapper variant that supports quotes in response files....Marius Bakke