summaryrefslogtreecommitdiff
path: root/guix
diff options
context:
space:
mode:
authorLudovic Courtès <ludovic.courtes@inria.fr>2019-02-08 09:16:27 +0100
committerLudovic Courtès <ludo@gnu.org>2019-02-08 10:41:13 +0100
commit06fff484cec2abc1702e2131d963ed086c5e0b29 (patch)
treefb9868538b879e8452570623667d1a455fe4e39f /guix
parent60cbc6a8df348b7742fc47912a0827a697804d23 (diff)
git: Add a 'recursive?' field to <git-checkout> records.
* guix/git.scm (<git-checkout>)[recursive?]: New field. (latest-repository-commit*): Add #:recursive? and honor it. (git-checkout-compiler): Honor the 'recursive?' field of CHECKOUT.
Diffstat (limited to 'guix')
-rw-r--r--guix/git.scm12
1 files changed, 8 insertions, 4 deletions
diff --git a/guix/git.scm b/guix/git.scm
index e2daa78f6b..51b8aa9ae5 100644
--- a/guix/git.scm
+++ b/guix/git.scm
@@ -273,9 +273,10 @@ Log progress and checkout info to LOG-PORT."
git-checkout?
(url git-checkout-url)
(branch git-checkout-branch (default "master"))
- (commit git-checkout-commit (default #f)))
+ (commit git-checkout-commit (default #f))
+ (recursive? git-checkout-recursive? (default #f)))
-(define* (latest-repository-commit* url #:key ref log-port)
+(define* (latest-repository-commit* url #:key ref recursive? log-port)
;; Monadic variant of 'latest-repository-commit'.
(lambda (store)
;; The caller--e.g., (guix scripts build)--may not handle 'git-error' so
@@ -284,7 +285,9 @@ Log progress and checkout info to LOG-PORT."
(catch 'git-error
(lambda ()
(values (latest-repository-commit store url
- #:ref ref #:log-port log-port)
+ #:ref ref
+ #:recursive? recursive?
+ #:log-port log-port)
store))
(lambda (key error . _)
(raise (condition
@@ -306,11 +309,12 @@ Log progress and checkout info to LOG-PORT."
;; "Compile" CHECKOUT by updating the local checkout and adding it to the
;; store.
(match checkout
- (($ <git-checkout> url branch commit)
+ (($ <git-checkout> url branch commit recursive?)
(latest-repository-commit* url
#:ref (if commit
`(commit . ,commit)
`(branch . ,branch))
+ #:recursive? recursive?
#:log-port (current-error-port)))))
;; Local Variables: