123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- --- Horrible script to concatenate everything in /src into a single rx.lua file.
- -- @usage lua tools/build.lua [distribution=base]
- -- @arg {string='base'} distribution - Type of distribution to build, either 'base' or 'luvit'.
- local files = {
- 'src/util.lua',
- 'src/subscription.lua',
- 'src/observer.lua',
- 'src/observable.lua',
- 'src/operators/all.lua',
- 'src/operators/amb.lua',
- 'src/operators/average.lua',
- 'src/operators/buffer.lua',
- 'src/operators/catch.lua',
- 'src/operators/combineLatest.lua',
- 'src/operators/compact.lua',
- 'src/operators/concat.lua',
- 'src/operators/contains.lua',
- 'src/operators/count.lua',
- 'src/operators/debounce.lua',
- 'src/operators/defaultIfEmpty.lua',
- 'src/operators/delay.lua',
- 'src/operators/distinct.lua',
- 'src/operators/distinctUntilChanged.lua',
- 'src/operators/elementAt.lua',
- 'src/operators/filter.lua',
- 'src/operators/find.lua',
- 'src/operators/first.lua',
- 'src/operators/flatMap.lua',
- 'src/operators/flatMapLatest.lua',
- 'src/operators/flatten.lua',
- 'src/operators/ignoreElements.lua',
- 'src/operators/last.lua',
- 'src/operators/map.lua',
- 'src/operators/max.lua',
- 'src/operators/merge.lua',
- 'src/operators/min.lua',
- 'src/operators/pack.lua',
- 'src/operators/partition.lua',
- 'src/operators/pluck.lua',
- 'src/operators/reduce.lua',
- 'src/operators/reject.lua',
- 'src/operators/retry.lua',
- 'src/operators/sample.lua',
- 'src/operators/scan.lua',
- 'src/operators/skip.lua',
- 'src/operators/skipLast.lua',
- 'src/operators/skipUntil.lua',
- 'src/operators/skipWhile.lua',
- 'src/operators/startWith.lua',
- 'src/operators/sum.lua',
- 'src/operators/switch.lua',
- 'src/operators/take.lua',
- 'src/operators/takeLast.lua',
- 'src/operators/takeUntil.lua',
- 'src/operators/takeWhile.lua',
- 'src/operators/tap.lua',
- 'src/operators/unpack.lua',
- 'src/operators/unwrap.lua',
- 'src/operators/window.lua',
- 'src/operators/with.lua',
- 'src/operators/zip.lua',
- 'src/schedulers/immediatescheduler.lua',
- 'src/schedulers/cooperativescheduler.lua',
- 'src/schedulers/timeoutscheduler.lua',
- 'src/subjects/subject.lua',
- 'src/subjects/asyncsubject.lua',
- 'src/subjects/behaviorsubject.lua',
- 'src/subjects/replaysubject.lua',
- 'src/aliases.lua'
- }
- local header = [[
- -- RxLua v0.0.3
- -- https://github.com/bjornbytes/rxlua
- -- MIT License
- ]]
- local exports = [[
- exports.name = 'bjornbytes/rx'
- exports.version = '0.0.3'
- exports.description = 'Reactive Extensions for Lua'
- exports.license = 'MIT'
- exports.author = { url = 'https://github.com/bjornbytes' }
- exports.homepage = 'https://github.com/bjornbytes/rxlua'
- ]]
- local footer = [[return {
- util = util,
- Subscription = Subscription,
- Observer = Observer,
- Observable = Observable,
- ImmediateScheduler = ImmediateScheduler,
- CooperativeScheduler = CooperativeScheduler,
- TimeoutScheduler = TimeoutScheduler,
- Subject = Subject,
- AsyncSubject = AsyncSubject,
- BehaviorSubject = BehaviorSubject,
- ReplaySubject = ReplaySubject
- }]]
- 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 distribution = arg[1] or 'base'
- local destination, components
- if distribution == 'base' then
- destination = 'rx.lua'
- components = { header, output, footer }
- elseif distribution == 'luvit' then
- destination = 'rx-luvit.lua'
- components = { header, exports, output, footer }
- else
- error('Invalid distribution specified.')
- end
- local file = io.open(destination, 'w')
- if file then
- file:write(table.concat(components, ''))
- file:close()
- end
|