channels: Add 'channel-instances->derivation'.

* guix/channels.scm (channel-instances->derivation): New procedure.
(latest-channel-derivation): Use it.
(channel-instance-derivations): Make private.
This commit is contained in:
Ludovic Courtès 2018-09-18 12:08:05 +02:00
parent 811b21fb15
commit c37f38bde6
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 10 additions and 6 deletions

View File

@ -47,9 +47,9 @@
channel-instance-checkout
latest-channel-instances
channel-instance-derivations
latest-channel-derivation
channel-instances->manifest))
channel-instances->manifest
channel-instances->derivation))
;;; Commentary:
;;;
@ -294,13 +294,17 @@ channel instances."
(zip instances derivations))))
(return (manifest entries))))
(define (channel-instances->derivation instances)
"Return the derivation of the profile containing INSTANCES, a list of
channel instances."
(mlet %store-monad ((manifest (channel-instances->manifest instances)))
(profile-derivation manifest)))
(define latest-channel-instances*
(store-lift latest-channel-instances))
(define* (latest-channel-derivation #:optional (channels %default-channels))
"Return as a monadic value the derivation that builds the profile for the
latest instances of CHANNELS."
(mlet* %store-monad ((instances ((store-lift latest-channel-instances)
channels))
(manifest (channel-instances->manifest instances)))
(profile-derivation manifest)))
(mlet %store-monad ((instances (latest-channel-instances* channels)))
(channel-instances->derivation instances)))