concat.lua 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. -- Horrible script to concatenate everything in /src into a single rx.lua file.
  2. -- Usage: lua tools/concat.lua [dest=rx.lua]
  3. local files = {
  4. 'src/util.lua',
  5. 'src/subscription.lua',
  6. 'src/observer.lua',
  7. 'src/observable.lua',
  8. 'src/schedulers/immediatescheduler.lua',
  9. 'src/schedulers/cooperativescheduler.lua',
  10. 'src/subjects/subject.lua',
  11. 'src/subjects/behaviorsubject.lua'
  12. }
  13. local header = [[
  14. -- RxLua v0.0.1
  15. -- https://github.com/bjornbytes/rxlua
  16. -- MIT License
  17. ]]
  18. local footer = [[return {
  19. util = util,
  20. Subscription = Subscription,
  21. Observer = Observer,
  22. Observable = Observable,
  23. ImmediateScheduler = ImmediateScheduler,
  24. CooperativeScheduler = CooperativeScheduler,
  25. Subject = Subject,
  26. BehaviorSubject = BehaviorSubject
  27. }]]
  28. local output = ''
  29. for _, filename in ipairs(files) do
  30. local file = io.open(filename)
  31. if not file then
  32. error('error opening "' .. filename .. '"')
  33. end
  34. local str = file:read('*all')
  35. file:close()
  36. str = '\n' .. str .. '\n'
  37. str = str:gsub('\n(local[^\n]+require.[^\n]+)', '')
  38. str = str:gsub('\n(return[^\n]+)', '')
  39. str = str:gsub('^%s+', ''):gsub('%s+$', '')
  40. output = output .. str .. '\n\n'
  41. end
  42. local outputFile = arg[1] or 'rx.lua'
  43. local file = io.open(outputFile, 'w')
  44. if file then
  45. file:write(header .. output .. footer)
  46. end