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
|
with-directory-excursion
|
||||||
mkdir-p
|
mkdir-p
|
||||||
copy-recursively
|
copy-recursively
|
||||||
|
find-files
|
||||||
|
|
||||||
set-path-environment-variable
|
set-path-environment-variable
|
||||||
search-path-as-string->list
|
search-path-as-string->list
|
||||||
list->search-path-as-string
|
list->search-path-as-string
|
||||||
|
@ -117,6 +119,31 @@
|
||||||
#t
|
#t
|
||||||
source))
|
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.
|
;;; Search paths.
|
||||||
|
|
Loading…
Reference in New Issue