diff options
| -rw-r--r-- | bundle.moon | 24 | ||||
| -rw-r--r-- | render.moon | 10 | ||||
| -rw-r--r-- | tup.moon | 8 |
3 files changed, 36 insertions, 6 deletions
diff --git a/bundle.moon b/bundle.moon new file mode 100644 index 0000000..5d855ea --- /dev/null +++ b/bundle.moon @@ -0,0 +1,24 @@ +output_name = assert arg[1], "please specify the output directory" + +escape = (str) -> string.format '%q', str + +with io.open output_name, 'w' + \write "local p = package.preload\n" + + for i=2, #arg + file_name = arg[i] + + file = io.open file_name, 'r' + code = file\read '*all' + file\close! + + module = file_name\gsub '/', '.' + module = module\gsub '%.lua$', '' + module = module\gsub '%.init$', '' + module = module\match '^dist%.(.*)' + + file_name = escape file_name + code = escape code + module = escape module + + \write "if not p[#{module}] then p[#{module}] = load(#{code}, #{file_name}) end\n" diff --git a/render.moon b/render.moon index 8098ba7..90b85d3 100644 --- a/render.moon +++ b/render.moon @@ -40,10 +40,12 @@ with io.open output_name, 'w' <body> #{content} - <script defer src=\"/fengari-web.js\"></script> - <script defer src=\"/highlight.pack.js\"></script> - <script defer src=\"//cdnjs.cloudflare.com/ajax/libs/marked/0.5.1/marked.min.js\"></script> - <script defer src=\"//cdnjs.cloudflare.com/ajax/libs/svg.js/2.6.6/svg.min.js\"></script> + <script src=\"/highlight.pack.js\"></script> + <script src=\"//cdnjs.cloudflare.com/ajax/libs/marked/0.5.1/marked.min.js\"></script> + <script src=\"//cdnjs.cloudflare.com/ajax/libs/svg.js/2.6.6/svg.min.js\"></script> + <script src=\"/fengari-web.js\"></script> + <script type=\"application/lua\" src=\"/mmm.bundle.lua\"></script> + <script type=\"application/lua\" src=\"/root.bundle.lua\"></script> <script defer type=\"application/lua\" src=\"/mmm/init.lua\"></script> #{rehydrate} @@ -23,14 +23,18 @@ enum_dir = do -- mmmfs tree for file in enum_dir 'root' basename = assert file\match '(.*)%.moon$' - print ": #{file} |> ^ MOON %b > %o^ moonc -o %o %f |> dist/#{basename}.lua" + print ": #{file} |> ^ MOON %b > %o^ moonc -o %o %f |> dist/#{basename}.lua {root_src}" -- mmm for file in enum_dir 'mmm' continue if file\match '%.server%.moon$' basename = assert file\match '(.*)%.moon$' basename = (file\match '(.*)%.client') or basename - print ": #{file} |> ^ MOON %b > %o^ moonc -o %o %f |> dist/#{basename}.lua" + print ": #{file} |> ^ MOON %b > %o^ moonc -o %o %f |> dist/#{basename}.lua {mmm_src}" + +-- GENERATE BUNDLES +print ": {root_src} |> ^ BUNDLE root^ moon bundle.moon %o %f |> dist/root.bundle.lua" +print ": {mmm_src} |> ^ BUNDLE mmm^ moon bundle.moon %o %f |> dist/mmm.bundle.lua" -- PRE-RENDER MMMFS import module_roots from require 'mmm.mmmfs' |
