From b33e191c86b7638517ea838b63a54d031a033554 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 9 Oct 2018 18:52:37 +0200 Subject: guix build: '-f' accepts file-like objects. * guix/scripts/build.scm (options->things-to-build)[validate-type]: Check for 'file-like?'. (options->derivations): Accept 'file-like?'. * tests/guix-build.sh: Add a test with 'computed-file'. * doc/guix.texi (Additional Build Options): Mention file-like objects. --- guix/scripts/build.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'guix/scripts') diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index 5a6ba62bc3..f3aa5512d5 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -623,7 +623,7 @@ (define (options->things-to-build opts) "Read the arguments from OPTS and return a list of high-level objects to build---packages, gexps, derivations, and so on." (define (validate-type x) - (unless (or (package? x) (derivation? x) (gexp? x) (procedure? x)) + (unless (or (derivation? x) (file-like? x) (gexp? x) (procedure? x)) (leave (G_ "~s: not something we can build~%") x))) (define (ensure-list x) @@ -700,6 +700,10 @@ (define graft? (assoc-ref opts 'graft?)) (set-guile-for-build (default-guile)) (proc)) #:system system))) + ((? file-like? obj) + (list (run-with-store store + (lower-object obj system + #:target (assoc-ref opts 'target))))) ((? gexp? gexp) (list (run-with-store store (mbegin %store-monad -- cgit v1.2.3