utils: Add #:copy-file parameter to 'copy-recursively'.

* guix/build/utils.scm (copy-recursively): Add #:copy-file and honor it.
* doc/guix.texi (Build Utilities): Adjust accordingly.
This commit is contained in:
Ludovic Courtès 2020-11-19 18:17:26 +01:00
parent 201cbcac3e
commit edbd8f3f7e
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
2 changed files with 10 additions and 8 deletions

View file

@ -7778,12 +7778,13 @@ Make @var{file} writable for its owner.
@end deffn
@deffn {Scheme Procedure} copy-recursively @var{source} @var{destination} @
[#:log (current-output-port)] [#:follow-symlinks? #f] [#:keep-mtime? #f]
[#:log (current-output-port)] [#:follow-symlinks? #f] @
[#:copy-file copy-file] [#:keep-mtime? #f]
Copy @var{source} directory to @var{destination}. Follow symlinks if
@var{follow-symlinks?} is true; otherwise, just preserve them. When
@var{keep-mtime?} is true, keep the modification time of the files in
@var{source} on those of @var{destination}. Write verbose output to the
@var{log} port.
@var{follow-symlinks?} is true; otherwise, just preserve them. Call
@var{copy-file} to copy regular files. When @var{keep-mtime?} is true,
keep the modification time of the files in @var{source} on those of
@var{destination}. Write verbose output to the @var{log} port.
@end deffn
@deffn {Scheme Procedure} delete-file-recursively @var{dir} @

View file

@ -343,11 +343,12 @@ (define* (copy-recursively source destination
#:key
(log (current-output-port))
(follow-symlinks? #f)
(copy-file copy-file)
keep-mtime?)
"Copy SOURCE directory to DESTINATION. Follow symlinks if FOLLOW-SYMLINKS?
is true; otherwise, just preserve them. When KEEP-MTIME? is true, keep the
modification time of the files in SOURCE on those of DESTINATION. Write
verbose output to the LOG port."
is true; otherwise, just preserve them. Call COPY-FILE to copy regular files.
When KEEP-MTIME? is true, keep the modification time of the files in SOURCE on
those of DESTINATION. Write verbose output to the LOG port."
(define strip-source
(let ((len (string-length source)))
(lambda (file)