ui: Lexicographically sort transaction entries based on their package name.

* guix/ui.scm (show-manifest-transaction): Sort entries to be displayed in a
tabulated view.
This commit is contained in:
Maxim Cournoyer 2020-09-02 13:08:46 -04:00
parent 7d3eb5e6b7
commit 140da556be
No known key found for this signature in database
GPG key ID: 1260E46482E63562

View file

@ -1240,18 +1240,21 @@ (define* (show-manifest-transaction store manifest transaction
#:key dry-run?) #:key dry-run?)
"Display what will/would be installed/removed from MANIFEST by TRANSACTION." "Display what will/would be installed/removed from MANIFEST by TRANSACTION."
(define* (package-strings names versions outputs #:key old-versions) (define* (package-strings names versions outputs #:key old-versions)
(tabulate (zip (map (lambda (name output) (tabulate (stable-sort
(if (string=? output "out") (zip (map (lambda (name output)
name (if (string=? output "out")
(string-append name ":" output))) name
names outputs) (string-append name ":" output)))
(if old-versions names outputs)
(map (lambda (old new) (if old-versions
(if (string=? old new) (map (lambda (old new)
(G_ "(dependencies or package changed)") (if (string=? old new)
(string-append old " " " " new))) (G_ "(dependencies or package changed)")
old-versions versions) (string-append old " " " " new)))
versions)) old-versions versions)
versions))
(lambda (x y)
(string<? (first x) (first y))))
#:initial-indent 3)) #:initial-indent 3))
(define ;an arrow that can be represented on stderr (define ;an arrow that can be represented on stderr