From mboxrd@z Thu Jan 1 00:00:00 1970 From: Huang Ying Subject: [PATCH -v2 1/2] build: union: Add create-all-directories? parameter to union-build Date: Tue, 7 Mar 2017 19:07:48 +0800 Message-ID: <20170307110749.31614-1-huang.ying.caritas@gmail.com> Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:51437) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1clCyi-0001ZD-Lh for guix-devel@gnu.org; Tue, 07 Mar 2017 06:08:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1clCyf-0006wV-Gu for guix-devel@gnu.org; Tue, 07 Mar 2017 06:08:28 -0500 Received: from m12-13.163.com ([220.181.12.13]:47889) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1clCye-0006uX-LW for guix-devel@gnu.org; Tue, 07 Mar 2017 06:08:25 -0500 List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org * guix/build/union.scm (union-build): Add create-all-directories? keyword parameter. To add/remove some files from the directory. --- guix/build/union.scm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/guix/build/union.scm b/guix/build/union.scm index 6640b5652..6a2a0f546 100644 --- a/guix/build/union.scm +++ b/guix/build/union.scm @@ -73,7 +73,8 @@ identical, #f otherwise." (loop))))))))))))) (define* (union-build output inputs - #:key (log-port (current-error-port))) + #:key (log-port (current-error-port)) + (create-all-directories? #f)) "Build in the OUTPUT directory a symlink tree that is the union of all the INPUTS." @@ -104,8 +105,11 @@ the INPUTS." (define (union output inputs) (match inputs ((input) - ;; There's only one input, so just make a link. - (symlink* input output)) + ;; There's only one input, so just make a link unless + ;; create-all-directories?. + (if (and create-all-directories? (file-is-directory? input)) + (union-of-directories output inputs) + (symlink* input output))) (_ (call-with-values (lambda () (partition file-is-directory? inputs)) (match-lambda* -- 2.12.0