From 0b6af195fe7476a15e498b24c67f9d8f6080a400 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 9 Jan 2015 23:33:42 +0100 Subject: derivations: Add 'derivation-output-names'. * guix/derivations.scm (derivation-output-names): New procedure. (derivation-prerequisites-to-build): Use it for #:outputs. (map-derivation): Likewise. * tests/derivations.scm ("derivation-output-names"): New test. --- guix/derivations.scm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'guix/derivations.scm') diff --git a/guix/derivations.scm b/guix/derivations.scm index 69cef1a4cd..5e96d9fa3c 100644 --- a/guix/derivations.scm +++ b/guix/derivations.scm @@ -58,6 +58,7 @@ derivation-input-output-paths derivation-name + derivation-output-names fixed-output-derivation? offloadable-derivation? substitutable-derivation? @@ -135,6 +136,12 @@ (let ((base (store-path-package-name (derivation-file-name drv)))) (string-drop-right base 4))) +(define (derivation-output-names drv) + "Return the names of the outputs of DRV." + (match (derivation-outputs drv) + (((names . _) ...) + names))) + (define (fixed-output-derivation? drv) "Return #t if DRV is a fixed-output derivation, such as the result of a download with a fixed hash (aka. `fetchurl')." @@ -180,9 +187,7 @@ download with a fixed hash (aka. `fetchurl')." (define* (derivation-prerequisites-to-build store drv #:key (outputs - (map - car - (derivation-outputs drv))) + (derivation-output-names drv)) (use-substitutes? #t)) "Return two values: the list of derivation-inputs required to build the OUTPUTS of DRV and not already available in STORE, recursively, and the list @@ -844,7 +849,7 @@ recursively." replacements)))) (derivation-builder-environment-vars drv)) #:inputs (append (map list sources) inputs) - #:outputs (map car (derivation-outputs drv)) + #:outputs (derivation-output-names drv) #:hash (match (derivation-outputs drv) ((($ _ algo hash)) hash) -- cgit v1.2.3