diff options
author | Ludovic Courtès <ludo@gnu.org> | 2020-05-06 22:18:52 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2020-05-07 10:06:15 +0200 |
commit | 4ba425060a9d000f54bbab99d17a2f23b277c623 (patch) | |
tree | 5193e1244169e2124ef84571291fede98600b66d /guix/channels.scm | |
parent | c263cfdcde0402cf44be7b14841d567f00e0af11 (diff) |
channels: Add 'latest-channel-instance'.
* guix/channels.scm (latest-channel-instance): New procedure.
(latest-channel-instances): Use it.
Diffstat (limited to 'guix/channels.scm')
-rw-r--r-- | guix/channels.scm | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/guix/channels.scm b/guix/channels.scm index 041fae2a9c..4ffc366d6a 100644 --- a/guix/channels.scm +++ b/guix/channels.scm @@ -199,6 +199,14 @@ description file or its default value." channel INSTANCE." (channel-metadata-dependencies (channel-instance-metadata instance))) +(define (latest-channel-instance store channel) + "Return the latest channel instance for CHANNEL." + (let-values (((checkout commit) + (latest-repository-commit store (channel-url channel) + #:ref (channel-reference + channel)))) + (channel-instance channel commit checkout))) + (define* (latest-channel-instances store channels #:optional (previous-channels '())) "Return a list of channel instances corresponding to the latest checkouts of CHANNELS and the channels on which they depend. PREVIOUS-CHANNELS is a list @@ -224,20 +232,16 @@ of previously processed channels." (G_ "Updating channel '~a' from Git repository at '~a'...~%") (channel-name channel) (channel-url channel)) - (let-values (((checkout commit) - (latest-repository-commit store (channel-url channel) - #:ref (channel-reference - channel)))) - (let ((instance (channel-instance channel commit checkout))) - (let-values (((new-instances new-channels) - (latest-channel-instances - store - (channel-instance-dependencies instance) - previous-channels))) - (values (append (cons channel new-channels) - previous-channels) - (append (cons instance new-instances) - instances)))))))) + (let ((instance (latest-channel-instance store channel))) + (let-values (((new-instances new-channels) + (latest-channel-instances + store + (channel-instance-dependencies instance) + previous-channels))) + (values (append (cons channel new-channels) + previous-channels) + (append (cons instance new-instances) + instances))))))) previous-channels '() ;instances channels)) |