diff options
Diffstat (limited to 'build/bundle_modules.moon')
| -rw-r--r-- | build/bundle_modules.moon | 35 |
1 files changed, 35 insertions, 0 deletions
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! |
