summaryrefslogtreecommitdiff
path: root/build.fnl
diff options
context:
space:
mode:
Diffstat (limited to 'build.fnl')
-rw-r--r--build.fnl17
1 files changed, 17 insertions, 0 deletions
diff --git a/build.fnl b/build.fnl
new file mode 100644
index 0000000..4c3c3db
--- /dev/null
+++ b/build.fnl
@@ -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")))))