concat.lua 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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/elementAt.lua',
  22. 'src/operators/filter.lua',
  23. 'src/operators/find.lua',
  24. 'src/operators/first.lua',
  25. 'src/operators/flatMap.lua',
  26. 'src/operators/flatMapLatest.lua',
  27. 'src/operators/flatten.lua',
  28. 'src/operators/ignoreElements.lua',
  29. 'src/operators/last.lua',
  30. 'src/operators/map.lua',
  31. 'src/operators/max.lua',
  32. 'src/operators/merge.lua',
  33. 'src/operators/min.lua',
  34. 'src/operators/pack.lua',
  35. 'src/operators/partition.lua',
  36. 'src/operators/pluck.lua',
  37. 'src/operators/reduce.lua',
  38. 'src/operators/reject.lua',
  39. 'src/operators/retry.lua',
  40. 'src/operators/scan.lua',
  41. 'src/operators/skip.lua',
  42. 'src/operators/skipUntil.lua',
  43. 'src/operators/skipWhile.lua',
  44. 'src/operators/skipLast.lua',
  45. 'src/operators/startWith.lua',
  46. 'src/operators/sum.lua',
  47. 'src/operators/switch.lua',
  48. 'src/operators/take.lua',
  49. 'src/operators/takeLast.lua',
  50. 'src/operators/takeUntil.lua',
  51. 'src/operators/takeWhile.lua',
  52. 'src/operators/tap.lua',
  53. 'src/operators/unpack.lua',
  54. 'src/operators/unwrap.lua',
  55. 'src/operators/window.lua',
  56. 'src/operators/with.lua',
  57. 'src/schedulers/immediatescheduler.lua',
  58. 'src/schedulers/cooperativescheduler.lua',
  59. 'src/subjects/subject.lua',
  60. 'src/subjects/behaviorsubject.lua',
  61. 'src/aliases.lua'
  62. }
  63. local header = [[
  64. -- RxLua v0.0.1
  65. -- https://github.com/bjornbytes/rxlua
  66. -- MIT License
  67. ]]
  68. local footer = [[return {
  69. util = util,
  70. Subscription = Subscription,
  71. Observer = Observer,
  72. Observable = Observable,
  73. ImmediateScheduler = ImmediateScheduler,
  74. CooperativeScheduler = CooperativeScheduler,
  75. Subject = Subject,
  76. BehaviorSubject = BehaviorSubject
  77. }]]
  78. local output = ''
  79. for _, filename in ipairs(files) do
  80. local file = io.open(filename)
  81. if not file then
  82. error('error opening "' .. filename .. '"')
  83. end
  84. local str = file:read('*all')
  85. file:close()
  86. str = '\n' .. str .. '\n'
  87. str = str:gsub('\n(local[^\n]+require.[^\n]+)', '')
  88. str = str:gsub('\n(return[^\n]+)', '')
  89. str = str:gsub('^%s+', ''):gsub('%s+$', '')
  90. output = output .. str .. '\n\n'
  91. end
  92. local outputFile = arg[1] or 'rx.lua'
  93. local file = io.open(outputFile, 'w')
  94. if file then
  95. file:write(header .. output .. footer)
  96. end