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
1 changed files with 13 additions and 5 deletions

View File

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