~ruther/guix-local

0a5ec7092d4398cbbab16ba523997233aae8ddc6 — Alex Kost 10 years ago cb933df
emacs: Display supported systems in "Package Info".

* emacs/guix-main.scm (%package-param-alist): Add 'systems'.
* emacs/guix-ui-package.el (guix-package-info-insert-systems): New
  procedure.
  (guix-package-info-format): Add it.
  (guix-output-info-format): Likewise.
  (guix-package-info-titles): Add "Supported systems" title.
2 files changed, 19 insertions(+), 1 deletions(-)

M emacs/guix-main.scm
M emacs/guix-ui-package.el
M emacs/guix-main.scm => emacs/guix-main.scm +1 -0
@@ 307,6 307,7 @@ Example:
    (description       . ,package-description-string)
    (home-url          . ,package-home-page)
    (outputs           . ,package-outputs)
    (systems           . ,package-supported-systems)
    (non-unique        . ,(negate package-unique?))
    (inputs            . ,(lambda (pkg)
                            (package-inputs-names

M emacs/guix-ui-package.el => emacs/guix-ui-package.el +18 -1
@@ 221,11 221,13 @@ ENTRIES is a list of package entries to get info about packages."
            (location format (format guix-package-location))
            (home-url format (format guix-url))
            (license format (format guix-package-info-license))
            (systems format guix-package-info-insert-systems)
            (inputs format (format guix-package-input))
            (native-inputs format (format guix-package-native-input))
            (propagated-inputs format
                               (format guix-package-propagated-input)))
  :titles '((home-url . "Home page"))
  :titles '((home-url . "Home page")
            (systems . "Supported systems"))
  :required '(id name version installed non-unique))

(guix-info-define-interface installed-output


@@ 363,6 365,20 @@ formatted with this string, an action button is inserted.")
   'guix-package-name
   'face 'guix-package-info-heading))

(defun guix-package-info-insert-systems (systems entry)
  "Insert supported package SYSTEMS at point."
  (guix-info-insert-value-format
   systems 'guix-hydra-build-system
   'action (lambda (btn)
             (let ((args (guix-hydra-build-latest-prompt-args
                          :job (button-get btn 'job-name)
                          :system (button-label btn))))
               (apply #'guix-hydra-build-get-display
                      'latest args)))
   'job-name (guix-package-name-specification
              (guix-entry-value entry 'name)
              (guix-entry-value entry 'version))))

(defmacro guix-package-info-define-insert-inputs (&optional type)
  "Define a face and a function for inserting package inputs.
TYPE is a type of inputs.


@@ 749,6 765,7 @@ for all ARGS."
            (location format (format guix-package-location))
            (home-url format (format guix-url))
            (license format (format guix-package-info-license))
            (systems format guix-package-info-insert-systems)
            (inputs format (format guix-package-input))
            (native-inputs format (format guix-package-native-input))
            (propagated-inputs format