aboutsummaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authors-ol <s+removethis@s-ol.nu>2021-03-06 15:13:48 +0000
committers-ol <s+removethis@s-ol.nu>2021-03-06 15:13:48 +0000
commitdcf14ccfa1648cc375912b6da33a220033f3d63a (patch)
tree693e7c523801ef563e176c40962eb485bd685ace /build
parentbasic caching for fileder tree and conversion results (diff)
downloadmmm-dcf14ccfa1648cc375912b6da33a220033f3d63a.tar.gz
mmm-dcf14ccfa1648cc375912b6da33a220033f3d63a.zip
drop Tup dependency
Diffstat (limited to 'build')
-rw-r--r--build/bundle_module.moon51
-rw-r--r--build/bundle_modules.moon35
-rw-r--r--build/import.moon1
-rw-r--r--build/server.moon1
4 files changed, 35 insertions, 53 deletions
diff --git a/build/bundle_module.moon b/build/bundle_module.moon
deleted file mode 100644
index 1c6b5f6..0000000
--- a/build/bundle_module.moon
+++ /dev/null
@@ -1,51 +0,0 @@
-output_name = assert arg[1], "please specify the output directory"
-
-escape = (str) -> string.format '%q', str
-
-readfile = (name) ->
- file = io.open name, 'r'
- with file\read '*all'
- file\close
-
-with io.open output_name, 'w'
- -- final wrap mode
- if arg[2] == '--wrap'
- assert #arg == 3, "too many arguments for 'wrap' mode"
- bundle = arg[3]
-
- bundle = dofile bundle
- \write "local p = package.preload\n"
- for { :module, :file, :source } in *bundle
- module = escape module
- \write "if not p[#{module}] then p[#{module}] = load(#{escape source}, #{escape file}) end\n"
-
- -- iterative bundling mode
- else
- \write "return {\n"
-
- this = assert arg[2]
- addmod = (module, file, source) ->
- modname = "#{this}.#{module}"
- modname = this if module == 'init'
- \write "
-{
- module = #{escape modname},
- file = #{escape "#{this}/#{file}"},
- source = #{escape source},
-},"
-
- for file in *arg[3,]
- if dirname = file\match '^([%w-_]+)/%.bundle%.lua$'
- bundle = dofile file
- for { :module, :file, :source } in *bundle
- addmod module, file, source
- else
- module = file\gsub '%.lua$', ''
- continue if module\match '%.server'
- module = module\gsub '%.client$', ''
- module = module\gsub '%.init$', ''
- addmod module, file, readfile file
-
- \write "}"
-
- \close!
diff --git a/build/bundle_modules.moon b/build/bundle_modules.moon
new file mode 100644
index 0000000..9360eeb
--- /dev/null
+++ b/build/bundle_modules.moon
@@ -0,0 +1,35 @@
+moon = require 'moonscript.base'
+
+output_name = assert arg[1], "please specify the output directory"
+
+escape = (str) ->
+ string.format '%q', str
+
+readfile = (name) ->
+ file = io.open name, 'r'
+ with file\read '*all'
+ file\close
+
+out = io.open output_name, 'w'
+out\write "
+local p = {}
+table.insert(package.searchers, 1, function (mod)
+ print('?',mod, not not p[mod])
+ local mod = p[mod]
+ return mod and function ()
+ return load(table.unpack(mod))()
+ end
+end)
+"
+
+for file in io.lines!
+ module = file\gsub '%.moon$', ''
+ continue if not module or module\match '%.server'
+ module = module\gsub '%.client$', ''
+ module = module\gsub '/init$', ''
+ module = module\gsub '/', '.'
+ module = escape module
+ source = moon.to_lua readfile file
+ out\write "p[#{module}] = {#{escape source}, #{escape file}}\n"
+
+out\close!
diff --git a/build/import.moon b/build/import.moon
index 92d4397..6d9f791 100644
--- a/build/import.moon
+++ b/build/import.moon
@@ -34,7 +34,6 @@ with SQLStore :file, verbose: true
import_fileder = (fileder, dirpath) ->
for file in lfs.dir dirpath
continue if '.' == file\sub 1, 1
- continue if file == 'Tupdefault.lua'
continue if file == 'index.html'
continue if file == '$order'
diff --git a/build/server.moon b/build/server.moon
index 46ea737..7c03efd 100644
--- a/build/server.moon
+++ b/build/server.moon
@@ -20,7 +20,6 @@ import Browser from require 'mmm.mmmfs.browser'
import init_cache from require 'mmm.mmmfs.cache'
import decodeURI from require 'http.util'
-lfs = require 'lfs'
server = require 'http.server'
headers = require 'http.headers'