summaryrefslogtreecommitdiff
path: root/guix/scripts/pull.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix/scripts/pull.scm')
-rw-r--r--guix/scripts/pull.scm18
1 files changed, 13 insertions, 5 deletions
diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm
index a1d27406a5..408ff91978 100644
--- a/guix/scripts/pull.scm
+++ b/guix/scripts/pull.scm
@@ -45,6 +45,7 @@
#: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 @@ way and displaying details about the channel's source code."
(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 @@ and ALIST2 differ, display HEADING upfront."
(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))