From f8a9f99cd602ce1dc5307cb0c21ae718ad8796bb Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 10 Jun 2019 22:10:21 +0200 Subject: store: 'build-things' accepts derivation/output pairs. This allows callers to request the substitution of a single derivation output. * guix/store.scm (build-things): Accept derivation/output pairs among THINGS. * guix/derivations.scm (build-derivations): Likewise. * tests/store.scm ("substitute + build-things with specific output"): New test. * tests/derivations.scm ("build-derivations with specific output"): New test. * doc/guix.texi (The Store): Adjust accordingly. --- 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 7a5c3bca94..cad77bdb06 100644 --- a/guix/derivations.scm +++ b/guix/derivations.scm @@ -982,12 +982,17 @@ recursively." (define* (build-derivations store derivations #:optional (mode (build-mode normal))) - "Build DERIVATIONS, a list of objects or .drv file names, using -the specified MODE." + "Build DERIVATIONS, a list of objects, .drv file names, or +derivation/output pairs, using the specified MODE." (build-things store (map (match-lambda + ((? derivation? drv) + (derivation-file-name drv)) ((? string? file) file) - ((and drv ($ )) - (derivation-file-name drv))) + (((? derivation? drv) . output) + (cons (derivation-file-name drv) + output)) + (((? string? file) . output) + (cons file output))) derivations) mode)) -- cgit v1.2.3