Skip to content
Snippets Groups Projects
Commit c065c443 authored by Ludovic Courtès's avatar Ludovic Courtès
Browse files

union: Make the log port a parameter.

* guix/build/union.scm (union-build): Add 'log-port' keyword parameter;
  use it.
parent d0dc4907
No related branches found
No related tags found
No related merge requests found
......@@ -100,7 +100,8 @@ (define non-collisions
,@(map loop dirs))))
(leaf leaf))))
(define* (union-build output directories)
(define* (union-build output directories
#:key (log-port (current-error-port)))
"Build in the OUTPUT directory a symlink tree that is the union of all
the DIRECTORIES."
(define (file-tree dir)
......@@ -174,6 +175,8 @@ (define (resolve-collision leaves)
(setvbuf (current-output-port) _IOLBF)
(setvbuf (current-error-port) _IOLBF)
(when (file-port? log-port)
(setvbuf log-port _IOLBF))
(mkdir output)
(let loop ((tree (delete-duplicate-leaves
......@@ -189,8 +192,7 @@ (define (resolve-collision leaves)
;; A leaf: create a symlink.
(let* ((dir (string-join dir "/"))
(target (string-append output "/" dir "/" (basename tree))))
(format (current-error-port) "`~a' ~~> `~a'~%"
tree target)
(format log-port "`~a' ~~> `~a'~%" tree target)
(symlink tree target)))
(((? string? subdir) leaves ...)
;; A sub-directory: create it in OUTPUT, and iterate over LEAVES.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment