summaryrefslogtreecommitdiff
path: root/tasks/build
diff options
context:
space:
mode:
authorAndrey Listopadov <andreyorst@gmail.com>2023-08-30 19:33:12 +0300
committerAndrey Listopadov <andreyorst@gmail.com>2023-08-30 19:33:12 +0300
commit6971eedee776d0014c94cbee519655e37707a8f7 (patch)
tree9df796882b9ebc15fda72973a782ca8ec085073e /tasks/build
parentb1202918b2a7cb91e9c7744b70cea7e241bce2f8 (diff)
rename the lazy-seq function to lazy-seq* to avoid name clash with a macroHEADmaster
Diffstat (limited to 'tasks/build')
-rw-r--r--tasks/build19
1 files changed, 19 insertions, 0 deletions
diff --git a/tasks/build b/tasks/build
new file mode 100644
index 0000000..b1fa0eb
--- /dev/null
+++ b/tasks/build
@@ -0,0 +1,19 @@
+;; -*- mode: fennel; -*- vi:ft=fennel
+
+(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")))))