aboutsummaryrefslogtreecommitdiffstats
path: root/bundle.moon
blob: 5d855ea9679d010c84959921a277bc5403942fc6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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"