diff options
author | Alex Kost <alezost@gmail.com> | 2014-11-02 13:58:21 +0300 |
---|---|---|
committer | Alex Kost <alezost@gmail.com> | 2014-11-04 15:51:22 +0300 |
commit | d38bd08c74009ffa2a3d764054f1ca39c9192fff (patch) | |
tree | 011f3ba92f1728ecb857a89c39cfa6fbb62ddd0e /emacs/guix-messages.el | |
parent | 62f261d88cb737f9f3f3d2fffacc7d2b5a599d80 (diff) | |
download | gnu-guix-d38bd08c74009ffa2a3d764054f1ca39c9192fff.tar gnu-guix-d38bd08c74009ffa2a3d764054f1ca39c9192fff.tar.gz |
emacs: Add interface for comparing generations.
Suggested by Ludovic Courtès.
* doc/emacs.texi (Emacs List buffer): Document new key bindings.
* emacs/guix-base.el (guix-generation-packages-buffer-name-function,
guix-generation-packages-update-buffer, guix-output-name-width): New
variables.
(guix-generation-file, guix-manifest-file, guix-generation-packages,
guix-generation-packages-buffer-name-default,
guix-generation-packages-buffer-name-long,
guix-generation-packages-buffer-name, guix-generation-packages-buffer,
guix-generation-insert-package, guix-generation-insert-packages,
guix-profile-generation-manifest-file,
guix-profile-generation-packages-buffer): New procedures.
* emacs/guix-list.el: Add key bindings for comparing generations.
(guix-generation-list-generations-to-compare,
guix-generation-list-show-added-packages,
guix-generation-list-show-removed-packages, guix-generation-list-compare,
guix-generation-list-ediff-manifests, guix-generation-list-diff-manifests,
guix-generation-list-ediff-packages, guix-generation-list-diff-packages,
guix-generation-list-ediff, guix-generation-list-diff): New procedures.
* emacs/guix-messages.el (guix-messages): Add 'generation-diff' search type.
(guix-message-outputs-by-diff): New procedure.
* emacs/guix-utils.el (guix-diff-switches): New variable.
(guix-diff): New procedure.
* emacs/guix-main.scm (package/output-sexps): Handle 'generation-diff' search
type.
(manifest-entry->package-specification,
manifest-entries->package-specifications, generation-package-specifications,
generation-package-specifications+paths, generation-difference): New
procedures.
Diffstat (limited to 'emacs/guix-messages.el')
-rw-r--r-- | emacs/guix-messages.el | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/emacs/guix-messages.el b/emacs/guix-messages.el index 7a0b493ac7..bd985a0670 100644 --- a/emacs/guix-messages.el +++ b/emacs/guix-messages.el @@ -99,7 +99,9 @@ (1 "A single package output installed in generation %d of profile '%s'." val profile) (many "%d package outputs installed in generation %d of profile '%s'." - count val profile))) + count val profile)) + (generation-diff + guix-message-outputs-by-diff)) (generation (id @@ -167,6 +169,20 @@ "matching time period '%s' - '%s'.") str-beg profile time-beg time-end))) +(defun guix-message-outputs-by-diff (profile entries generations) + "Display a message for outputs searched by GENERATIONS difference." + (let* ((count (length entries)) + (str-beg (guix-message-string-entries count 'output)) + (gen1 (car generations)) + (gen2 (cadr generations))) + (cl-multiple-value-bind (new old str-action) + (if (> gen1 gen2) + (list gen1 gen2 "added to") + (list gen2 gen1 "removed from")) + (message (concat "%s %s generation %d comparing with " + "generation %d of profile '%s'.") + str-beg str-action new old profile)))) + (defun guix-result-message (profile entries entry-type search-type search-vals) "Display an appropriate message after displaying ENTRIES." |