diff options
author | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2020-09-02 11:52:16 -0400 |
---|---|---|
committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2020-09-12 02:08:14 -0400 |
commit | 7d3eb5e6b7404d7a481a67cb2f97b68d347c047f (patch) | |
tree | 913392076a796a6dafb8ef859469edf1e18e8f40 | |
parent | 71e746cc63a932afea0d41652c8c297d796bccf7 (diff) | |
download | guix-7d3eb5e6b7404d7a481a67cb2f97b68d347c047f.tar.gz guix-7d3eb5e6b7404d7a481a67cb2f97b68d347c047f.zip |
ui: Refactor the package-strings helper in show-manifest-transaction.
* guix/ui.scm (show-manifest-transaction)[package-strings]: Add an
OLD-VERSIONS keyword parameter. Absorb the code path previously found in the
upgrade-string. Remove upgrade-string.
(show-manifest-transaction): Adjust to the above changes.
-rw-r--r-- | guix/ui.scm | 33 |
1 files changed, 13 insertions, 20 deletions
diff --git a/guix/ui.scm b/guix/ui.scm index 9006f82144..9c641afe3e 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Simon Tournier <zimon.toutoune@gmail.com> ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1238,31 +1239,24 @@ separator between subsequent columns." (define* (show-manifest-transaction store manifest transaction #:key dry-run?) "Display what will/would be installed/removed from MANIFEST by TRANSACTION." - (define (package-strings names versions outputs) + (define* (package-strings names versions outputs #:key old-versions) (tabulate (zip (map (lambda (name output) (if (string=? output "out") name (string-append name ":" output))) names outputs) - versions) - #:initial-indent 3)) - - (define → ;an arrow that can be represented on stderr - (right-arrow (current-error-port))) - - (define (upgrade-string names old-version new-version outputs) - (tabulate (zip (map (lambda (name output) - (if (string=? output "out") - name - (string-append name ":" output))) - names outputs) - (map (lambda (old new) + (if old-versions + (map (lambda (old new) (if (string=? old new) (G_ "(dependencies or package changed)") (string-append old " " → " " new))) - old-version new-version)) + old-versions versions) + versions)) #:initial-indent 3)) + (define → ;an arrow that can be represented on stderr + (right-arrow (current-error-port))) + (let-values (((remove install upgrade downgrade) (manifest-transaction-effects manifest transaction))) (match remove @@ -1285,8 +1279,8 @@ separator between subsequent columns." (((($ <manifest-entry> name old-version) . ($ <manifest-entry> _ new-version output item)) ..1) (let ((len (length name)) - (downgrade (upgrade-string name old-version new-version - output))) + (downgrade (package-strings name new-version output + #:old-versions old-version))) (if dry-run? (format (current-error-port) (N_ "The following package would be downgraded:~%~{~a~%~}~%" @@ -1303,9 +1297,8 @@ separator between subsequent columns." (((($ <manifest-entry> name old-version) . ($ <manifest-entry> _ new-version output item)) ..1) (let ((len (length name)) - (upgrade (upgrade-string name - old-version new-version - output))) + (upgrade (package-strings name new-version output + #:old-versions old-version))) (if dry-run? (format (current-error-port) (N_ "The following package would be upgraded:~%~{~a~%~}~%" |