summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-07-20 16:39:19 +0200
committerLudovic Courtès <ludo@gnu.org>2016-07-20 16:39:19 +0200
commit260bc60f83b1955ac7f48b71872d3d2809132ee2 (patch)
tree5013d73809dfa8dd1fbcbe5330b98552a399ed84
parenta849273509efb38e3f8ba740a7e1f63191413d91 (diff)
downloadguix-260bc60f83b1955ac7f48b71872d3d2809132ee2.tar.gz
derivations: Export 'fixed-output-path'.
* guix/derivations.scm (fixed-output-path): Change 'output',
'hash-algo', and 'recursive?' to keyword parameters.  Export.
(derivation): Adjust accordingly.
-rw-r--r--guix/derivations.scm21
1 files changed, 14 insertions, 7 deletions
diff --git a/guix/derivations.scm b/guix/derivations.scm
index 76593f373b..7f74ed6c77 100644
--- a/guix/derivations.scm
+++ b/guix/derivations.scm
@@ -73,6 +73,7 @@
             derivation-name
             derivation-output-names
             fixed-output-derivation?
+            fixed-output-path
             offloadable-derivation?
             substitutable-derivation?
             substitution-oracle
@@ -676,7 +677,11 @@ the derivation called NAME with hash HASH."
                   name
                   (string-append name "-" output))))
 
-(define (fixed-output-path output hash-algo hash recursive? name)
+(define* (fixed-output-path name hash
+                            #:key
+                            (output "out")
+                            (hash-algo 'sha256)
+                            (recursive? #t))
   "Return an output path for the fixed output OUTPUT defined by HASH of type
 HASH-ALGO, of the derivation NAME.  RECURSIVE? has the same meaning as for
 'add-to-store'."
@@ -736,12 +741,14 @@ output should not be used."
               (outputs  (map (match-lambda
                               ((output-name . ($ <derivation-output>
                                                  _ algo hash rec?))
-                               (let ((path (if hash
-                                               (fixed-output-path output-name
-                                                                  algo hash
-                                                                  rec? name)
-                                               (output-path output-name
-                                                            drv-hash name))))
+                               (let ((path
+                                      (if hash
+                                          (fixed-output-path name hash
+                                                             #:hash-algo algo
+                                                             #:output output-name
+                                                             #:recursive? rec?)
+                                          (output-path output-name
+                                                       drv-hash name))))
                                  (cons output-name
                                        (make-derivation-output path algo
                                                                hash rec?)))))