summaryrefslogtreecommitdiff
path: root/utils/build
diff options
context:
space:
mode:
authorAndrey Listopadov <andreyorst@gmail.com>2023-08-28 22:13:21 +0300
committerAndrey Listopadov <andreyorst@gmail.com>2023-08-28 22:13:21 +0300
commitae389b9480d46091bfd9b6843aebdc48aa577c16 (patch)
treed484cbde3aa9394b8134d40bd55a5bdaaf9bdb17 /utils/build
parent3332e86562d9381c5fcf6a6f5205240f5e9d4f39 (diff)
Update fennel-test, and add test runner script
Diffstat (limited to 'utils/build')
-rw-r--r--utils/build17
1 files changed, 17 insertions, 0 deletions
diff --git a/utils/build b/utils/build
new file mode 100644
index 0000000..4c3c3db
--- /dev/null
+++ b/utils/build
@@ -0,0 +1,17 @@
+(fn spit-lib [path to]
+ (with-open [lib (io.open path)]
+ (each [line (lib:lines)]
+ ;; patching compile-time variable used to store macro module
+ ;; namr because when loafing the combined file it will always
+ ;; equal the the main module and will break macros in vendored
+ ;; libraries.
+ (case (line:match "%(local lib%-name %(or %.%.%. (.*)")
+ name (to:write (.. "(local lib-name (or " name "\n"))
+ _ (to:write line "\n")))))
+
+(with-open [cljlib (io.open "./cljlib.fnl" :w)]
+ (let [main (io.open "src/cljlib.fnl")]
+ (each [line (main:lines)]
+ (case (line:match ";;;###include (.*)")
+ (path) (spit-lib path cljlib)
+ _ (cljlib:write line "\n")))))