aboutsummaryrefslogtreecommitdiff
path: root/module/hnh/module-introspection
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2023-09-13 00:01:28 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2023-09-13 00:01:28 +0200
commita82b6c772089aa46e30c6c89ef48f514294df3cb (patch)
treee25d9b6fd1fefe8b6ac293a5c0b53293872a8f54 /module/hnh/module-introspection
parentAdd basic documentation for lens. (diff)
parentEven more documentation. (diff)
downloadcalp-a82b6c772089aa46e30c6c89ef48f514294df3cb.tar.gz
calp-a82b6c772089aa46e30c6c89ef48f514294df3cb.tar.xz
Merge branch 'next' into datarewrite-structures
Diffstat (limited to '')
-rw-r--r--module/hnh/module-introspection/all-modules.scm25
1 files changed, 14 insertions, 11 deletions
diff --git a/module/hnh/module-introspection/all-modules.scm b/module/hnh/module-introspection/all-modules.scm
index 1bf39e1e..4b224d2f 100644
--- a/module/hnh/module-introspection/all-modules.scm
+++ b/module/hnh/module-introspection/all-modules.scm
@@ -7,8 +7,9 @@
:use-module (hnh module-introspection)
:use-module ((hnh module-introspection static-util) :select (get-forms))
:export (all-files-and-modules-under-directory
+ all-files-under-directory
all-modules-under-directory
- fs-find-base fs-find
+ fs-find
module-file-mapping
))
@@ -20,22 +21,24 @@
;; (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* (all-files-under-directory dir extension)
+ (define extension-rx ((@ (texinfo string-utils) escape-special-chars)
+ extension "[](){}+*?.^$" #\\))
+ (define re (make-regexp (string-append extension-rx "$")))
- (define files
- (map car
- (filter (match-lambda ((filename _ 'regular)
- (and (regexp-exec re filename)
- (not (file-hidden? filename))))
- (_ #f))
- (fs-find dir))))
+ (map car
+ (filter (match-lambda ((filename _ 'regular)
+ (and (regexp-exec re filename)
+ (not (file-hidden? filename))))
+ (_ #f))
+ (fs-find dir))))
+(define (all-files-and-modules-under-directory dir)
(map (lambda (file)
(list file
(call-with-input-file file
(compose find-module-declaration get-forms))))
- files))
+ (all-files-under-directory dir ".scm")))
(define (all-modules-under-directory dir)
"Returns two values, all scm files in dir, and all top