profiles: Add 'concatenate-manifests'.
* guix/profiles.scm (concatenate-manifests): New procedure. * tests/profiles.scm ("concatenate-manifests"): New test.
This commit is contained in:
parent
d76df98fa5
commit
ce30a0eb7e
@ -92,6 +92,7 @@
|
||||
manifest-pattern-version
|
||||
manifest-pattern-output
|
||||
|
||||
concatenate-manifests
|
||||
manifest-remove
|
||||
manifest-add
|
||||
manifest-lookup
|
||||
@ -515,6 +516,10 @@ procedure is here for backward-compatibility and will eventually vanish."
|
||||
"Return the packages listed in MANIFEST."
|
||||
(sexp->manifest (read port)))
|
||||
|
||||
(define (concatenate-manifests lst)
|
||||
"Concatenate the manifests listed in LST and return the resulting manifest."
|
||||
(manifest (append-map manifest-entries lst)))
|
||||
|
||||
(define (entry-predicate pattern)
|
||||
"Return a procedure that returns #t when passed a manifest entry that
|
||||
matches NAME/OUTPUT/VERSION. OUTPUT and VERSION may be #f, in which case they
|
||||
|
@ -113,6 +113,11 @@
|
||||
(manifest-matching-entries m (list p))
|
||||
#f)))
|
||||
|
||||
(test-equal "concatenate-manifests"
|
||||
(manifest (list guile-2.0.9 glibc))
|
||||
(concatenate-manifests (list (manifest (list guile-2.0.9))
|
||||
(manifest (list glibc)))))
|
||||
|
||||
(test-assert "manifest-remove"
|
||||
(let* ((m0 (manifest (list guile-2.0.9 guile-2.0.9:debug)))
|
||||
(m1 (manifest-remove m0
|
||||
|
Loading…
Reference in New Issue
Block a user