From 52af657aee4430c13af93829ca10b2239a9956b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 12 Oct 2013 23:45:57 +0200 Subject: [PATCH] pull: Simplify the builder. * guix/scripts/pull.scm (unpack)[builder]: Use 'copy-recursively' and 'copy-file' instead of 'file-system-fold'. --- guix/scripts/pull.scm | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 1ee1c91142..a93343ceef 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -47,6 +47,8 @@ (define builder (ice-9 ftw) (ice-9 match)) + (setvbuf (current-output-port) _IOLBF) + (setvbuf (current-error-port) _IOLBF) (let ((out (assoc-ref %outputs "out")) (tar (assoc-ref %build-inputs "tar")) (gzip (assoc-ref %build-inputs "gzip")) @@ -66,27 +68,9 @@ (define builder (format #t "copying and compiling Guix to `~a'...~%" out) ;; Copy everything under guix/ and gnu/ plus guix.scm. - (file-system-fold (lambda (dir stat result) ; enter? - (or (string-prefix? "./guix" dir) - (string-prefix? "./gnu" dir) - (string=? "." dir))) - (lambda (file stat result) ; leaf - (when (or (not (string=? (dirname file) ".")) - (string=? (basename file) "guix.scm")) - (let ((target (string-drop file 1))) - (copy-file file - (string-append out target))))) - (lambda (dir stat result) ; down - (mkdir (string-append out - (string-drop dir 1)))) - (const #t) ; up - (const #t) ; skip - (lambda (file stat errno result) - (error "cannot access file" - file (strerror errno))) - #f - "." - lstat) + (copy-recursively "guix" (string-append out "/guix")) + (copy-recursively "gnu" (string-append out "/gnu")) + (copy-file "guix.scm" (string-append out "/guix.scm")) ;; Add a fake (guix config) module to allow the other modules to be ;; compiled. The user's (guix config) is the one that will be used.