aboutsummaryrefslogtreecommitdiff
path: root/guix/channels.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix/channels.scm')
-rw-r--r--guix/channels.scm12
1 files changed, 12 insertions, 0 deletions
diff --git a/guix/channels.scm b/guix/channels.scm
index 82389eb583..e57da68149 100644
--- a/guix/channels.scm
+++ b/guix/channels.scm
@@ -47,6 +47,7 @@
channel-instance-checkout
latest-channel-instances
+ checkout->channel-instance
latest-channel-derivation
channel-instances->manifest
channel-instances->derivation))
@@ -114,6 +115,17 @@ CHANNELS."
(channel-instance channel commit checkout)))
channels))
+(define* (checkout->channel-instance checkout
+ #:key commit
+ (url checkout) (name 'guix))
+ "Return a channel instance for CHECKOUT, which is assumed to be a checkout
+of COMMIT at URL. Use NAME as the channel name."
+ (let* ((commit (or commit (make-string 40 #\0)))
+ (channel (channel (name name)
+ (commit commit)
+ (url url))))
+ (channel-instance channel commit checkout)))
+
(define %self-build-file
;; The file containing code to build Guix. This serves the same purpose as
;; a makefile, and, similarly, is intended to always keep this name.