From 3332e86562d9381c5fcf6a6f5205240f5e9d4f39 Mon Sep 17 00:00:00 2001 From: Andrey Listopadov Date: Sat, 26 Aug 2023 19:40:29 +0000 Subject: Move everything to a single file Now the library is fully self-contained and doesn't require any special flags to be used. Macros are now shipped inside the library itself and can be required by user code by requiring the same module name as the library. --- build.fnl | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 build.fnl (limited to 'build.fnl') 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"))))) -- cgit v1.2.3