channels: Add 'latest-channel-derivation' convenience procedure.

* guix/channels.scm (latest-channel-derivations): Remove.
(latest-channel-instances*, latest-channel-derivation): New procedures.
This commit is contained in:
Ludovic Courtès 2018-09-05 10:35:43 +02:00
parent 4fd2622df8
commit 030f1367f0
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -48,7 +48,7 @@ (define-module (guix channels)
latest-channel-instances
channel-instance-derivations
latest-channel-derivations
latest-channel-derivation
channel-instances->manifest))
;;; Commentary:
@ -216,14 +216,6 @@ (define core-instance
(list core))))
instances)))
(define latest-channel-derivations
(let ((latest-channel-instances (store-lift latest-channel-instances)))
(lambda (channels)
"Return, as a monadic value, the list of derivations for the latest
instances of CHANNELS."
(mlet %store-monad ((instances (latest-channel-instances channels)))
(channel-instance-derivations instances)))))
(define (whole-package-for-legacy name modules)
"Return a full-blown Guix package for MODULES, a derivation that builds Guix
modules in the old ~/.config/guix/latest style."
@ -290,3 +282,14 @@ (define instance->entry
(entries (mapm %store-monad instance->entry
(zip instances derivations))))
(return (manifest entries))))
(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)))