guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/03: channels: Add 'latest-channel-instance'.


From: guix-commits
Subject: 01/03: channels: Add 'latest-channel-instance'.
Date: Thu, 7 May 2020 04:09:51 -0400 (EDT)

civodul pushed a commit to branch core-updates
in repository guix.

commit 4ba425060a9d000f54bbab99d17a2f23b277c623
Author: Ludovic Courtès <address@hidden>
AuthorDate: Wed May 6 22:18:52 2020 +0200

    channels: Add 'latest-channel-instance'.
    
    * guix/channels.scm (latest-channel-instance): New procedure.
    (latest-channel-instances): Use it.
---
 guix/channels.scm | 32 ++++++++++++++++++--------------
 1 file changed, 18 insertions(+), 14 deletions(-)

diff --git a/guix/channels.scm b/guix/channels.scm
index 041fae2..4ffc366 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))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]