discovery: 'scheme-files' ignores hidden files.

* guix/discovery.scm (scheme-files)[dot-prefixed?]: New procedure.
Use it to exclude any file starting with ".".
This commit is contained in:
Ludovic Courtès 2019-07-26 21:49:25 +02:00
parent d23a00b599
commit 548e0af4da
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 5 additions and 3 deletions

View File

@ -51,13 +51,15 @@ DIRECTORY is not accessible."
((? symbol? type) ((? symbol? type)
type))) type)))
(define (dot-prefixed? file)
(string-prefix? "." file))
;; Use 'scandir*' so we can avoid an extra 'lstat' for each entry, as ;; Use 'scandir*' so we can avoid an extra 'lstat' for each entry, as
;; opposed to Guile's 'scandir' or 'file-system-fold'. ;; opposed to Guile's 'scandir' or 'file-system-fold'.
(fold-right (lambda (entry result) (fold-right (lambda (entry result)
(match entry (match entry
(("." . _) (((? dot-prefixed?) . _)
result) ;; Exclude ".", "..", and hidden files such as backups.
((".." . _)
result) result)
((name . properties) ((name . properties)
(let ((absolute (string-append directory "/" name))) (let ((absolute (string-append directory "/" name)))