utils: Add `delete-file-recursively'.
* guix/build/utils.scm (delete-file-recursively): New procedure.
This commit is contained in:
parent
7f614e49e8
commit
e65df6a63a
@ -32,6 +32,7 @@
|
|||||||
with-directory-excursion
|
with-directory-excursion
|
||||||
mkdir-p
|
mkdir-p
|
||||||
copy-recursively
|
copy-recursively
|
||||||
|
delete-file-recursively
|
||||||
find-files
|
find-files
|
||||||
|
|
||||||
set-path-environment-variable
|
set-path-environment-variable
|
||||||
@ -147,6 +148,26 @@ return values of applying PROC to the port."
|
|||||||
#t
|
#t
|
||||||
source))
|
source))
|
||||||
|
|
||||||
|
(define (delete-file-recursively dir)
|
||||||
|
"Delete DIR recursively, like `rm -rf', without following symlinks. Report
|
||||||
|
but ignore errors."
|
||||||
|
(file-system-fold (const #t) ; enter?
|
||||||
|
(lambda (file stat result) ; leaf
|
||||||
|
(delete-file file))
|
||||||
|
(const #t) ; down
|
||||||
|
(lambda (dir stat result) ; up
|
||||||
|
(rmdir dir))
|
||||||
|
(const #t) ; skip
|
||||||
|
(lambda (file stat errno result)
|
||||||
|
(format (current-error-port)
|
||||||
|
"warning: failed to delete ~a: ~a~%"
|
||||||
|
file (strerror errno)))
|
||||||
|
#t
|
||||||
|
dir
|
||||||
|
|
||||||
|
;; Don't follow symlinks.
|
||||||
|
lstat))
|
||||||
|
|
||||||
(define (find-files dir regexp)
|
(define (find-files dir regexp)
|
||||||
"Return the list of files under DIR whose basename matches REGEXP."
|
"Return the list of files under DIR whose basename matches REGEXP."
|
||||||
(define file-rx
|
(define file-rx
|
||||||
|
Loading…
Reference in New Issue
Block a user