RxLua/tools/concat.lua

58 lines
1.3 KiB
Lua

-- Horrible script to concatenate everything in /src into a single rx.lua file.
-- Usage: lua tools/concat.lua [dest=rx.lua]
local files = {
'src/util.lua',
'src/subscription.lua',
'src/observer.lua',
'src/observable.lua',
'src/schedulers/immediatescheduler.lua',
'src/schedulers/cooperativescheduler.lua',
'src/subjects/subject.lua',
'src/subjects/behaviorsubject.lua',
'src/aliases.lua'
}
local header = [[
-- RxLua v0.0.1
-- https://github.com/bjornbytes/rxlua
-- MIT License
]]
local footer = [[return {
util = util,
Subscription = Subscription,
Observer = Observer,
Observable = Observable,
ImmediateScheduler = ImmediateScheduler,
CooperativeScheduler = CooperativeScheduler,
Subject = Subject,
BehaviorSubject = BehaviorSubject
}]]
local output = ''
for _, filename in ipairs(files) do
local file = io.open(filename)
if not file then
error('error opening "' .. filename .. '"')
end
local str = file:read('*all')
file:close()
str = '\n' .. str .. '\n'
str = str:gsub('\n(local[^\n]+require.[^\n]+)', '')
str = str:gsub('\n(return[^\n]+)', '')
str = str:gsub('^%s+', ''):gsub('%s+$', '')
output = output .. str .. '\n\n'
end
local outputFile = arg[1] or 'rx.lua'
local file = io.open(outputFile, 'w')
if file then
file:write(header .. output .. footer)
end