>From 2138811ed5d5a18f90b9745bd5c59c270508e6ec Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Mon, 28 Dec 2015 21:40:06 +0300 Subject: [PATCH] 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. --- emacs/guix-main.scm | 1 + emacs/guix-ui-package.el | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm index 6f9eb42..8c38e7c 100644 --- a/emacs/guix-main.scm +++ b/emacs/guix-main.scm @@ -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 diff --git a/emacs/guix-ui-package.el b/emacs/guix-ui-package.el index e0c98ea..12bfaee 100644 --- a/emacs/guix-ui-package.el +++ b/emacs/guix-ui-package.el @@ -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 -- 2.6.3