pull: Move profile comparison to 'new/upgraded-packages'.

* guix/scripts/pull.scm (new/upgraded-packages): New procedure, with
code formerly in 'display-new/upgraded-packages'.
(display-new/upgraded-packages): Use it.
This commit is contained in:
Ludovic Courtès 2019-02-12 22:35:28 +01:00
parent 739380542d
commit cf0eacceb4
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -45,6 +45,7 @@ (define-module (guix scripts pull)
#:select (%bootstrap-guile))
#:use-module ((gnu packages certs) #:select (le-certs))
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
@ -346,11 +347,10 @@ (define profile-package-alist
(close-inferior inferior)
packages)))
(define* (display-new/upgraded-packages alist1 alist2
#:key (heading ""))
"Given the two package name/version alists ALIST1 and ALIST2, display the
list of new and upgraded packages going from ALIST1 to ALIST2. When ALIST1
and ALIST2 differ, display HEADING upfront."
(define (new/upgraded-packages alist1 alist2)
"Compare ALIST1 and ALIST2, both of which are lists of package name/version
pairs, and return two values: the list of packages new in ALIST2, and the list
of packages upgraded in ALIST2."
(let* ((old (fold (match-lambda*
(((name . version) table)
(vhash-cons name version table)))
@ -370,6 +370,14 @@ (define* (display-new/upgraded-packages alist1 alist2
(string-append name "@"
new-version))))))
alist2)))
(values new upgraded)))
(define* (display-new/upgraded-packages alist1 alist2
#:key (heading ""))
"Given the two package name/version alists ALIST1 and ALIST2, display the
list of new and upgraded packages going from ALIST1 to ALIST2. When ALIST1
and ALIST2 differ, display HEADING upfront."
(let-values (((new upgraded) (new/upgraded-packages alist1 alist2)))
(unless (and (null? new) (null? upgraded))
(display heading))