diff mbox series

[bug#43170,1/2] ui: Refactor the package-strings helper in show-manifest-transaction.

Message ID 20200902172046.3728-1-maxim.cournoyer@gmail.com
State Accepted
Headers show
Series [bug#43170,1/2] ui: Refactor the package-strings helper in show-manifest-transaction. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job

Commit Message

Maxim Cournoyer Sept. 2, 2020, 5:20 p.m. UTC
* 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.
---
 guix/ui.scm | 33 +++++++++++++--------------------
 1 file changed, 13 insertions(+), 20 deletions(-)

Comments

Ludovic Courtès Sept. 4, 2020, 8:47 a.m. UTC | #1
Hi!

Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

> * 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.

[...]

> * guix/ui.scm (show-manifest-transaction): Sort entries to be displayed in a
> tabulated view.

LGTM, thanks!

Ludo’.
diff mbox series

Patch

diff --git a/guix/ui.scm b/guix/ui.scm
index efc3f39186..01af3d93d3 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.
 ;;;
@@ -1232,31 +1233,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
@@ -1279,8 +1273,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~%~}~%"
@@ -1297,9 +1291,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~%~}~%"