aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2022-04-12 13:18:37 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2022-04-21 15:16:42 +0200
commitf5884222a95456aadc9684efd375fc77887e54a5 (patch)
tree7bffb41c8b017e87b1686010d46d813620da58fd /scripts
parentFix comment on unval. (diff)
downloadcalp-f5884222a95456aadc9684efd375fc77887e54a5.tar.gz
calp-f5884222a95456aadc9684efd375fc77887e54a5.tar.xz
Introduce fs-find.
Diffstat (limited to 'scripts')
-rw-r--r--scripts/all-modules.scm31
1 files changed, 19 insertions, 12 deletions
diff --git a/scripts/all-modules.scm b/scripts/all-modules.scm
index 2d6b068c..ad6d3b72 100644
--- a/scripts/all-modules.scm
+++ b/scripts/all-modules.scm
@@ -3,22 +3,29 @@
:use-module (srfi srfi-1)
:use-module (ice-9 ftw)
:use-module (ice-9 match)
- :export (all-files-and-modules-under-directory all-modules-under-directory))
-
-(define (all-files-and-modules-under-directory dir)
- (define re (make-regexp "\\.scm$"))
+ :use-module (hnh util path)
+ :export (all-files-and-modules-under-directory
+ all-modules-under-directory
+ fs-find-base fs-find))
+(define (fs-find dir)
(define files '())
+ (ftw dir (lambda args (set! files (cons args files)) #t))
+ files)
- (ftw dir (lambda (filename statinfo flag)
- (cond ((and (eq? flag 'regular)
- (regexp-exec re filename))
- => (lambda (m)
- (set! files (cons filename files))
- #t
- ))
- (else #t))))
+;; (define (fs-find proc dir)
+;; (filter proc (fs-find-base dir)))
+
+(define (all-files-and-modules-under-directory dir)
+ (define re (make-regexp "\\.scm$"))
+ (define files
+ (map car
+ (filter (match-lambda ((filename _ 'regular)
+ (and (regexp-exec re filename)
+ (not (file-hidden? filename))))
+ (_ #f))
+ (fs-find dir))))
(map (lambda (file)
(list file