utils: Add `find-files'.
* guix/build/utils.scm (find-files): New procedure.
This commit is contained in:
parent
c0746cc9db
commit
4c261f4169
|
@ -29,6 +29,8 @@
|
|||
with-directory-excursion
|
||||
mkdir-p
|
||||
copy-recursively
|
||||
find-files
|
||||
|
||||
set-path-environment-variable
|
||||
search-path-as-string->list
|
||||
list->search-path-as-string
|
||||
|
@ -117,6 +119,31 @@
|
|||
#t
|
||||
source))
|
||||
|
||||
(define (find-files dir regexp)
|
||||
"Return the list of files under DIR whose basename matches REGEXP."
|
||||
(define file-rx
|
||||
(if (regexp? regexp)
|
||||
regexp
|
||||
(make-regexp regexp)))
|
||||
|
||||
(file-system-fold (const #t)
|
||||
(lambda (file stat result) ; leaf
|
||||
(if (regexp-exec file-rx (basename file))
|
||||
(cons file result)
|
||||
result))
|
||||
(lambda (dir stat result) ; down
|
||||
result)
|
||||
(lambda (dir stat result) ; up
|
||||
result)
|
||||
(lambda (file stat result) ; skip
|
||||
result)
|
||||
(lambda (file stat errno result)
|
||||
(format (current-error-port) "find-files: ~a: ~a~%"
|
||||
file (strerror errno))
|
||||
#f)
|
||||
'()
|
||||
dir))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Search paths.
|
||||
|
|
Loading…
Reference in New Issue