concat.lua 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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/operators/all.lua',
  9. 'src/operators/amb.lua',
  10. 'src/operators/average.lua',
  11. 'src/operators/buffer.lua',
  12. 'src/operators/catch.lua',
  13. 'src/operators/combineLatest.lua',
  14. 'src/operators/compact.lua',
  15. 'src/operators/concat.lua',
  16. 'src/operators/contains.lua',
  17. 'src/operators/count.lua',
  18. 'src/operators/defaultIfEmpty.lua',
  19. 'src/operators/distinct.lua',
  20. 'src/operators/distinctUntilChanged.lua',
  21. 'src/operators/filter.lua',
  22. 'src/operators/find.lua',
  23. 'src/operators/first.lua',
  24. 'src/operators/flatMap.lua',
  25. 'src/operators/flatten.lua',
  26. 'src/operators/last.lua',
  27. 'src/operators/map.lua',
  28. 'src/operators/max.lua',
  29. 'src/operators/merge.lua',
  30. 'src/operators/min.lua',
  31. 'src/operators/pack.lua',
  32. 'src/operators/partition.lua',
  33. 'src/operators/pluck.lua',
  34. 'src/operators/reduce.lua',
  35. 'src/operators/reject.lua',
  36. 'src/operators/skip.lua',
  37. 'src/operators/skipUntil.lua',
  38. 'src/operators/skipWhile.lua',
  39. 'src/operators/take.lua',
  40. 'src/operators/takeUntil.lua',
  41. 'src/operators/takeWhile.lua',
  42. 'src/operators/tap.lua',
  43. 'src/operators/unpack.lua',
  44. 'src/operators/unwrap.lua',
  45. 'src/operators/window.lua',
  46. 'src/operators/with.lua',
  47. 'src/schedulers/immediatescheduler.lua',
  48. 'src/schedulers/cooperativescheduler.lua',
  49. 'src/subjects/subject.lua',
  50. 'src/subjects/behaviorsubject.lua',
  51. 'src/aliases.lua'
  52. }
  53. local header = [[
  54. -- RxLua v0.0.1
  55. -- https://github.com/bjornbytes/rxlua
  56. -- MIT License
  57. ]]
  58. local footer = [[return {
  59. util = util,
  60. Subscription = Subscription,
  61. Observer = Observer,
  62. Observable = Observable,
  63. ImmediateScheduler = ImmediateScheduler,
  64. CooperativeScheduler = CooperativeScheduler,
  65. Subject = Subject,
  66. BehaviorSubject = BehaviorSubject
  67. }]]
  68. local output = ''
  69. for _, filename in ipairs(files) do
  70. local file = io.open(filename)
  71. if not file then
  72. error('error opening "' .. filename .. '"')
  73. end
  74. local str = file:read('*all')
  75. file:close()
  76. str = '\n' .. str .. '\n'
  77. str = str:gsub('\n(local[^\n]+require.[^\n]+)', '')
  78. str = str:gsub('\n(return[^\n]+)', '')
  79. str = str:gsub('^%s+', ''):gsub('%s+$', '')
  80. output = output .. str .. '\n\n'
  81. end
  82. local outputFile = arg[1] or 'rx.lua'
  83. local file = io.open(outputFile, 'w')
  84. if file then
  85. file:write(header .. output .. footer)
  86. end