rufus-lua-win 5.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (459) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +69 -0
  6. data/Rakefile +1 -0
  7. data/lib/rufus/lua/win.rb +18 -0
  8. data/lib/rufus/lua/win/version.rb +7 -0
  9. data/rufus-lua-win.gemspec +23 -0
  10. data/vendor/lua/bin/liblua.dll +0 -0
  11. data/vendor/lua/lib/lua/LuaXml.lua +119 -0
  12. data/vendor/lua/lib/lua/alien.lua +250 -0
  13. data/vendor/lua/lib/lua/alien/core.dll +0 -0
  14. data/vendor/lua/lib/lua/alien/struct.dll +0 -0
  15. data/vendor/lua/lib/lua/base.lua +536 -0
  16. data/vendor/lua/lib/lua/bin.lua +20 -0
  17. data/vendor/lua/lib/lua/bit.dll +0 -0
  18. data/vendor/lua/lib/lua/cdlua.dll +0 -0
  19. data/vendor/lua/lib/lua/cdluacontextplus.dll +0 -0
  20. data/vendor/lua/lib/lua/cdluagl.dll +0 -0
  21. data/vendor/lua/lib/lua/cdluaim.dll +0 -0
  22. data/vendor/lua/lib/lua/cdluapdf.dll +0 -0
  23. data/vendor/lua/lib/lua/copas.lua +543 -0
  24. data/vendor/lua/lib/lua/coxpcall.lua +57 -0
  25. data/vendor/lua/lib/lua/date.lua +745 -0
  26. data/vendor/lua/lib/lua/debug_ext.lua +84 -0
  27. data/vendor/lua/lib/lua/debug_init.lua +2 -0
  28. data/vendor/lua/lib/lua/des56.dll +0 -0
  29. data/vendor/lua/lib/lua/dist/config.lua +109 -0
  30. data/vendor/lua/lib/lua/dist/constraints.lua +271 -0
  31. data/vendor/lua/lib/lua/dist/depends.lua +601 -0
  32. data/vendor/lua/lib/lua/dist/git.lua +307 -0
  33. data/vendor/lua/lib/lua/dist/init.lua +278 -0
  34. data/vendor/lua/lib/lua/dist/manifest.lua +225 -0
  35. data/vendor/lua/lib/lua/dist/package.lua +583 -0
  36. data/vendor/lua/lib/lua/dist/sys.lua +367 -0
  37. data/vendor/lua/lib/lua/dist/utils.lua +130 -0
  38. data/vendor/lua/lib/lua/ex.dll +0 -0
  39. data/vendor/lua/lib/lua/fstable.lua +116 -0
  40. data/vendor/lua/lib/lua/getopt.lua +273 -0
  41. data/vendor/lua/lib/lua/git.lua +5 -0
  42. data/vendor/lua/lib/lua/git/core.dll +0 -0
  43. data/vendor/lua/lib/lua/git/objects.lua +121 -0
  44. data/vendor/lua/lib/lua/git/pack.lua +316 -0
  45. data/vendor/lua/lib/lua/git/protocol.lua +188 -0
  46. data/vendor/lua/lib/lua/git/repo.lua +283 -0
  47. data/vendor/lua/lib/lua/git/util.lua +233 -0
  48. data/vendor/lua/lib/lua/gzio.dll +0 -0
  49. data/vendor/lua/lib/lua/gzip.lua +81 -0
  50. data/vendor/lua/lib/lua/iconv.dll +0 -0
  51. data/vendor/lua/lib/lua/imlua.dll +0 -0
  52. data/vendor/lua/lib/lua/imlua_fftw.dll +0 -0
  53. data/vendor/lua/lib/lua/imlua_jp2.dll +0 -0
  54. data/vendor/lua/lib/lua/imlua_process.dll +0 -0
  55. data/vendor/lua/lib/lua/imlua_process_omp.dll +0 -0
  56. data/vendor/lua/lib/lua/io_ext.lua +115 -0
  57. data/vendor/lua/lib/lua/iuplua.dll +0 -0
  58. data/vendor/lua/lib/lua/iuplua_mglplot.dll +0 -0
  59. data/vendor/lua/lib/lua/iuplua_pplot.dll +0 -0
  60. data/vendor/lua/lib/lua/iupluacd.dll +0 -0
  61. data/vendor/lua/lib/lua/iupluacontrols.dll +0 -0
  62. data/vendor/lua/lib/lua/iupluagl.dll +0 -0
  63. data/vendor/lua/lib/lua/iupluaim.dll +0 -0
  64. data/vendor/lua/lib/lua/iupluaimglib.dll +0 -0
  65. data/vendor/lua/lib/lua/iupluatuio.dll +0 -0
  66. data/vendor/lua/lib/lua/lanes-keeper.lua +302 -0
  67. data/vendor/lua/lib/lua/lanes.lua +591 -0
  68. data/vendor/lua/lib/lua/lanes/core.dll +0 -0
  69. data/vendor/lua/lib/lua/lcs.lua +55 -0
  70. data/vendor/lua/lib/lua/lemock.lua +659 -0
  71. data/vendor/lua/lib/lua/lfs.dll +0 -0
  72. data/vendor/lua/lib/lua/list.lua +375 -0
  73. data/vendor/lua/lib/lua/logging.lua +189 -0
  74. data/vendor/lua/lib/lua/logging/console.lua +22 -0
  75. data/vendor/lua/lib/lua/logging/email.lua +44 -0
  76. data/vendor/lua/lib/lua/logging/file.lua +55 -0
  77. data/vendor/lua/lib/lua/logging/rolling_file.lua +81 -0
  78. data/vendor/lua/lib/lua/logging/socket.lua +35 -0
  79. data/vendor/lua/lib/lua/logging/sql.lua +64 -0
  80. data/vendor/lua/lib/lua/loop/base.lua +68 -0
  81. data/vendor/lua/lib/lua/loop/cached.lua +312 -0
  82. data/vendor/lua/lib/lua/loop/collection/MapWithArrayOfKeys.lua +64 -0
  83. data/vendor/lua/lib/lua/loop/collection/ObjectCache.lua +39 -0
  84. data/vendor/lua/lib/lua/loop/collection/OrderedSet.lua +164 -0
  85. data/vendor/lua/lib/lua/loop/collection/PriorityQueue.lua +86 -0
  86. data/vendor/lua/lib/lua/loop/collection/UnorderedArray.lua +32 -0
  87. data/vendor/lua/lib/lua/loop/collection/UnorderedArraySet.lua +56 -0
  88. data/vendor/lua/lib/lua/loop/compiler/Arguments.lua +108 -0
  89. data/vendor/lua/lib/lua/loop/compiler/Conditional.lua +50 -0
  90. data/vendor/lua/lib/lua/loop/compiler/Expression.lua +215 -0
  91. data/vendor/lua/lib/lua/loop/component/base.lua +221 -0
  92. data/vendor/lua/lib/lua/loop/component/contained.lua +71 -0
  93. data/vendor/lua/lib/lua/loop/component/dynamic.lua +223 -0
  94. data/vendor/lua/lib/lua/loop/component/intercepted.lua +354 -0
  95. data/vendor/lua/lib/lua/loop/component/wrapped.lua +195 -0
  96. data/vendor/lua/lib/lua/loop/debug/Inspector.lua +521 -0
  97. data/vendor/lua/lib/lua/loop/debug/Matcher.lua +192 -0
  98. data/vendor/lua/lib/lua/loop/debug/Verbose.lua +266 -0
  99. data/vendor/lua/lib/lua/loop/debug/Viewer.lua +200 -0
  100. data/vendor/lua/lib/lua/loop/multiple.lua +105 -0
  101. data/vendor/lua/lib/lua/loop/object/Exception.lua +57 -0
  102. data/vendor/lua/lib/lua/loop/object/Publisher.lua +43 -0
  103. data/vendor/lua/lib/lua/loop/object/Wrapper.lua +39 -0
  104. data/vendor/lua/lib/lua/loop/scoped.lua +585 -0
  105. data/vendor/lua/lib/lua/loop/serial/FileStream.lua +48 -0
  106. data/vendor/lua/lib/lua/loop/serial/Serializer.lua +291 -0
  107. data/vendor/lua/lib/lua/loop/serial/SocketStream.lua +51 -0
  108. data/vendor/lua/lib/lua/loop/serial/StringStream.lua +47 -0
  109. data/vendor/lua/lib/lua/loop/simple.lua +75 -0
  110. data/vendor/lua/lib/lua/loop/table.lua +71 -0
  111. data/vendor/lua/lib/lua/loop/thread/CoSocket.lua +416 -0
  112. data/vendor/lua/lib/lua/loop/thread/IOScheduler.lua +170 -0
  113. data/vendor/lua/lib/lua/loop/thread/Scheduler.lua +327 -0
  114. data/vendor/lua/lib/lua/loop/thread/SocketScheduler.lua +88 -0
  115. data/vendor/lua/lib/lua/loop/thread/Timer.lua +54 -0
  116. data/vendor/lua/lib/lua/lpeg.dll +0 -0
  117. data/vendor/lua/lib/lua/ltn12.lua +292 -0
  118. data/vendor/lua/lib/lua/luaXML_lib.dll +0 -0
  119. data/vendor/lua/lib/lua/luacurl.dll +0 -0
  120. data/vendor/lua/lib/lua/luadoc/config.lua +34 -0
  121. data/vendor/lua/lib/lua/luadoc/doclet/debug.lua +46 -0
  122. data/vendor/lua/lib/lua/luadoc/doclet/formatter.lua +84 -0
  123. data/vendor/lua/lib/lua/luadoc/doclet/html.lua +289 -0
  124. data/vendor/lua/lib/lua/luadoc/doclet/html/file.lp +113 -0
  125. data/vendor/lua/lib/lua/luadoc/doclet/html/function.lp +64 -0
  126. data/vendor/lua/lib/lua/luadoc/doclet/html/index.lp +70 -0
  127. data/vendor/lua/lib/lua/luadoc/doclet/html/luadoc.css +286 -0
  128. data/vendor/lua/lib/lua/luadoc/doclet/html/menu.lp +55 -0
  129. data/vendor/lua/lib/lua/luadoc/doclet/html/module.lp +109 -0
  130. data/vendor/lua/lib/lua/luadoc/doclet/html/table.lp +15 -0
  131. data/vendor/lua/lib/lua/luadoc/doclet/raw.lua +12 -0
  132. data/vendor/lua/lib/lua/luadoc/init.lua +58 -0
  133. data/vendor/lua/lib/lua/luadoc/lp.lua +130 -0
  134. data/vendor/lua/lib/lua/luadoc/taglet/standard.lua +495 -0
  135. data/vendor/lua/lib/lua/luadoc/taglet/standard/tags.lua +171 -0
  136. data/vendor/lua/lib/lua/luadoc/util.lua +233 -0
  137. data/vendor/lua/lib/lua/luagl.dll +0 -0
  138. data/vendor/lua/lib/lua/luaglu.dll +0 -0
  139. data/vendor/lua/lib/lua/luaidl.lua +113 -0
  140. data/vendor/lua/lib/lua/luaidl/lex.lua +793 -0
  141. data/vendor/lua/lib/lua/luaidl/pre.lua +149 -0
  142. data/vendor/lua/lib/lua/luaidl/sin.lua +3631 -0
  143. data/vendor/lua/lib/lua/luarocks/add.lua +108 -0
  144. data/vendor/lua/lib/lua/luarocks/admin_remove.lua +87 -0
  145. data/vendor/lua/lib/lua/luarocks/build.lua +330 -0
  146. data/vendor/lua/lib/lua/luarocks/build/builtin.lua +253 -0
  147. data/vendor/lua/lib/lua/luarocks/build/cmake.lua +54 -0
  148. data/vendor/lua/lib/lua/luarocks/build/command.lua +32 -0
  149. data/vendor/lua/lib/lua/luarocks/build/make.lua +92 -0
  150. data/vendor/lua/lib/lua/luarocks/cache.lua +85 -0
  151. data/vendor/lua/lib/lua/luarocks/cfg.lua +449 -0
  152. data/vendor/lua/lib/lua/luarocks/command_line.lua +163 -0
  153. data/vendor/lua/lib/lua/luarocks/deps.lua +654 -0
  154. data/vendor/lua/lib/lua/luarocks/dir.lua +69 -0
  155. data/vendor/lua/lib/lua/luarocks/download.lua +90 -0
  156. data/vendor/lua/lib/lua/luarocks/fetch.lua +321 -0
  157. data/vendor/lua/lib/lua/luarocks/fetch/cvs.lua +44 -0
  158. data/vendor/lua/lib/lua/luarocks/fetch/git.lua +81 -0
  159. data/vendor/lua/lib/lua/luarocks/fetch/git_file.lua +17 -0
  160. data/vendor/lua/lib/lua/luarocks/fetch/hg.lua +54 -0
  161. data/vendor/lua/lib/lua/luarocks/fetch/sscm.lua +42 -0
  162. data/vendor/lua/lib/lua/luarocks/fetch/svn.lua +53 -0
  163. data/vendor/lua/lib/lua/luarocks/fs.lua +40 -0
  164. data/vendor/lua/lib/lua/luarocks/fs/lua.lua +676 -0
  165. data/vendor/lua/lib/lua/luarocks/fs/unix.lua +88 -0
  166. data/vendor/lua/lib/lua/luarocks/fs/unix/tools.lua +325 -0
  167. data/vendor/lua/lib/lua/luarocks/fs/win32.lua +107 -0
  168. data/vendor/lua/lib/lua/luarocks/fs/win32/tools.lua +334 -0
  169. data/vendor/lua/lib/lua/luarocks/help.lua +101 -0
  170. data/vendor/lua/lib/lua/luarocks/index.lua +172 -0
  171. data/vendor/lua/lib/lua/luarocks/install.lua +151 -0
  172. data/vendor/lua/lib/lua/luarocks/list.lua +35 -0
  173. data/vendor/lua/lib/lua/luarocks/loader.lua +228 -0
  174. data/vendor/lua/lib/lua/luarocks/make.lua +71 -0
  175. data/vendor/lua/lib/lua/luarocks/make_manifest.lua +34 -0
  176. data/vendor/lua/lib/lua/luarocks/manif.lua +360 -0
  177. data/vendor/lua/lib/lua/luarocks/manif_core.lua +75 -0
  178. data/vendor/lua/lib/lua/luarocks/new_version.lua +141 -0
  179. data/vendor/lua/lib/lua/luarocks/pack.lua +205 -0
  180. data/vendor/lua/lib/lua/luarocks/path.lua +315 -0
  181. data/vendor/lua/lib/lua/luarocks/persist.lua +173 -0
  182. data/vendor/lua/lib/lua/luarocks/refresh_cache.lua +30 -0
  183. data/vendor/lua/lib/lua/luarocks/remove.lua +135 -0
  184. data/vendor/lua/lib/lua/luarocks/rep.lua +313 -0
  185. data/vendor/lua/lib/lua/luarocks/require.lua +6 -0
  186. data/vendor/lua/lib/lua/luarocks/search.lua +399 -0
  187. data/vendor/lua/lib/lua/luarocks/show.lua +138 -0
  188. data/vendor/lua/lib/lua/luarocks/site_config.lua +23 -0
  189. data/vendor/lua/lib/lua/luarocks/tools/patch.lua +712 -0
  190. data/vendor/lua/lib/lua/luarocks/tools/tar.lua +144 -0
  191. data/vendor/lua/lib/lua/luarocks/tools/zip.lua +245 -0
  192. data/vendor/lua/lib/lua/luarocks/type_check.lua +267 -0
  193. data/vendor/lua/lib/lua/luarocks/unpack.lua +151 -0
  194. data/vendor/lua/lib/lua/luarocks/util.lua +420 -0
  195. data/vendor/lua/lib/lua/luarocks/validate.lua +164 -0
  196. data/vendor/lua/lib/lua/luars232.dll +0 -0
  197. data/vendor/lua/lib/lua/luasql/mysql.dll +0 -0
  198. data/vendor/lua/lib/lua/luasql/postgres.dll +0 -0
  199. data/vendor/lua/lib/lua/luasql/sqlite3.dll +0 -0
  200. data/vendor/lua/lib/lua/luaunit.lua +601 -0
  201. data/vendor/lua/lib/lua/lxp.dll +0 -0
  202. data/vendor/lua/lib/lua/lxp/lom.lua +60 -0
  203. data/vendor/lua/lib/lua/math_ext.lua +27 -0
  204. data/vendor/lua/lib/lua/mbox.lua +53 -0
  205. data/vendor/lua/lib/lua/md5.lua +19 -0
  206. data/vendor/lua/lib/lua/md5/core.dll +0 -0
  207. data/vendor/lua/lib/lua/metalua.lua +0 -0
  208. data/vendor/lua/lib/lua/metalua/ast_to_string.mlua +553 -0
  209. data/vendor/lua/lib/lua/metalua/base.lua +104 -0
  210. data/vendor/lua/lib/lua/metalua/bytecode.lua +0 -0
  211. data/vendor/lua/lib/lua/metalua/clopts.mlua +204 -0
  212. data/vendor/lua/lib/lua/metalua/compiler.lua +3 -0
  213. data/vendor/lua/lib/lua/metalua/dollar.mlua +24 -0
  214. data/vendor/lua/lib/lua/metalua/extension/H-runtime.mlua +216 -0
  215. data/vendor/lua/lib/lua/metalua/extension/H.mlua +22 -0
  216. data/vendor/lua/lib/lua/metalua/extension/anaphoric.mlua +54 -0
  217. data/vendor/lua/lib/lua/metalua/extension/clist.mlua +149 -0
  218. data/vendor/lua/lib/lua/metalua/extension/continue.mlua +53 -0
  219. data/vendor/lua/lib/lua/metalua/extension/localin.mlua +2 -0
  220. data/vendor/lua/lib/lua/metalua/extension/log.mlua +39 -0
  221. data/vendor/lua/lib/lua/metalua/extension/match.mlua +374 -0
  222. data/vendor/lua/lib/lua/metalua/extension/ternary.mlua +10 -0
  223. data/vendor/lua/lib/lua/metalua/extension/trycatch.mlua +189 -0
  224. data/vendor/lua/lib/lua/metalua/extension/types-runtime.mlua +159 -0
  225. data/vendor/lua/lib/lua/metalua/extension/types.mlua +352 -0
  226. data/vendor/lua/lib/lua/metalua/extension/withdo.mlua +30 -0
  227. data/vendor/lua/lib/lua/metalua/extension/xglobal-runtime.lua +41 -0
  228. data/vendor/lua/lib/lua/metalua/extension/xglobal.mlua +20 -0
  229. data/vendor/lua/lib/lua/metalua/extension/xloop.mlua +100 -0
  230. data/vendor/lua/lib/lua/metalua/extension/xmatch.mlua +216 -0
  231. data/vendor/lua/lib/lua/metalua/metaloop.mlua +76 -0
  232. data/vendor/lua/lib/lua/metalua/mlc.lua +0 -0
  233. data/vendor/lua/lib/lua/metalua/mlc_xcall.lua +119 -0
  234. data/vendor/lua/lib/lua/metalua/mlp.lua +0 -0
  235. data/vendor/lua/lib/lua/metalua/package2.lua +101 -0
  236. data/vendor/lua/lib/lua/metalua/runtime.lua +3 -0
  237. data/vendor/lua/lib/lua/metalua/string2.lua +44 -0
  238. data/vendor/lua/lib/lua/metalua/table2.lua +372 -0
  239. data/vendor/lua/lib/lua/metalua/walk.mlua +304 -0
  240. data/vendor/lua/lib/lua/metalua/walk/bindings.mlua +41 -0
  241. data/vendor/lua/lib/lua/metalua/walk/id.mlua +186 -0
  242. data/vendor/lua/lib/lua/metalua/walk/scope.lua +54 -0
  243. data/vendor/lua/lib/lua/mime.lua +87 -0
  244. data/vendor/lua/lib/lua/mime/core.dll +0 -0
  245. data/vendor/lua/lib/lua/mobdebug.lua +1484 -0
  246. data/vendor/lua/lib/lua/modules.lua +16 -0
  247. data/vendor/lua/lib/lua/object.lua +56 -0
  248. data/vendor/lua/lib/lua/oil/Exception.lua +26 -0
  249. data/vendor/lua/lib/lua/oil/arch.lua +27 -0
  250. data/vendor/lua/lib/lua/oil/arch/basic/client.lua +29 -0
  251. data/vendor/lua/lib/lua/oil/arch/basic/common.lua +13 -0
  252. data/vendor/lua/lib/lua/oil/arch/basic/server.lua +27 -0
  253. data/vendor/lua/lib/lua/oil/arch/cooperative/common.lua +10 -0
  254. data/vendor/lua/lib/lua/oil/arch/cooperative/server.lua +16 -0
  255. data/vendor/lua/lib/lua/oil/arch/corba/client.lua +39 -0
  256. data/vendor/lua/lib/lua/oil/arch/corba/common.lua +58 -0
  257. data/vendor/lua/lib/lua/oil/arch/corba/intercepted/client.lua +9 -0
  258. data/vendor/lua/lib/lua/oil/arch/corba/intercepted/server.lua +9 -0
  259. data/vendor/lua/lib/lua/oil/arch/corba/server.lua +35 -0
  260. data/vendor/lua/lib/lua/oil/arch/ludo/byref.lua +18 -0
  261. data/vendor/lua/lib/lua/oil/arch/ludo/client.lua +19 -0
  262. data/vendor/lua/lib/lua/oil/arch/ludo/common.lua +18 -0
  263. data/vendor/lua/lib/lua/oil/arch/ludo/server.lua +19 -0
  264. data/vendor/lua/lib/lua/oil/arch/typed/client.lua +27 -0
  265. data/vendor/lua/lib/lua/oil/arch/typed/common.lua +9 -0
  266. data/vendor/lua/lib/lua/oil/arch/typed/server.lua +18 -0
  267. data/vendor/lua/lib/lua/oil/assert.lua +87 -0
  268. data/vendor/lua/lib/lua/oil/builder.lua +45 -0
  269. data/vendor/lua/lib/lua/oil/builder/basic/client.lua +31 -0
  270. data/vendor/lua/lib/lua/oil/builder/basic/common.lua +11 -0
  271. data/vendor/lua/lib/lua/oil/builder/basic/server.lua +13 -0
  272. data/vendor/lua/lib/lua/oil/builder/cooperative/common.lua +11 -0
  273. data/vendor/lua/lib/lua/oil/builder/cooperative/server.lua +11 -0
  274. data/vendor/lua/lib/lua/oil/builder/corba/client.lua +13 -0
  275. data/vendor/lua/lib/lua/oil/builder/corba/common.lua +24 -0
  276. data/vendor/lua/lib/lua/oil/builder/corba/gencode.lua +13 -0
  277. data/vendor/lua/lib/lua/oil/builder/corba/intercepted/client.lua +11 -0
  278. data/vendor/lua/lib/lua/oil/builder/corba/intercepted/server.lua +11 -0
  279. data/vendor/lua/lib/lua/oil/builder/corba/server.lua +13 -0
  280. data/vendor/lua/lib/lua/oil/builder/lua/client.lua +11 -0
  281. data/vendor/lua/lib/lua/oil/builder/lua/server.lua +12 -0
  282. data/vendor/lua/lib/lua/oil/builder/ludo/byref.lua +13 -0
  283. data/vendor/lua/lib/lua/oil/builder/ludo/client.lua +13 -0
  284. data/vendor/lua/lib/lua/oil/builder/ludo/common.lua +14 -0
  285. data/vendor/lua/lib/lua/oil/builder/ludo/server.lua +13 -0
  286. data/vendor/lua/lib/lua/oil/builder/typed/client.lua +16 -0
  287. data/vendor/lua/lib/lua/oil/builder/typed/server.lua +12 -0
  288. data/vendor/lua/lib/lua/oil/compat.lua +846 -0
  289. data/vendor/lua/lib/lua/oil/component.lua +1 -0
  290. data/vendor/lua/lib/lua/oil/corba/giop.lua +301 -0
  291. data/vendor/lua/lib/lua/oil/corba/giop/Codec.lua +1568 -0
  292. data/vendor/lua/lib/lua/oil/corba/giop/CodecGen.lua +589 -0
  293. data/vendor/lua/lib/lua/oil/corba/giop/Exception.lua +25 -0
  294. data/vendor/lua/lib/lua/oil/corba/giop/Indexer.lua +63 -0
  295. data/vendor/lua/lib/lua/oil/corba/giop/Listener.lua +343 -0
  296. data/vendor/lua/lib/lua/oil/corba/giop/Messenger.lua +228 -0
  297. data/vendor/lua/lib/lua/oil/corba/giop/Referrer.lua +180 -0
  298. data/vendor/lua/lib/lua/oil/corba/giop/Requester.lua +462 -0
  299. data/vendor/lua/lib/lua/oil/corba/idl.lua +597 -0
  300. data/vendor/lua/lib/lua/oil/corba/idl/Compiler.lua +133 -0
  301. data/vendor/lua/lib/lua/oil/corba/idl/Importer.lua +235 -0
  302. data/vendor/lua/lib/lua/oil/corba/idl/Indexer.lua +95 -0
  303. data/vendor/lua/lib/lua/oil/corba/idl/Registry.lua +1821 -0
  304. data/vendor/lua/lib/lua/oil/corba/idl/ir.lua +847 -0
  305. data/vendor/lua/lib/lua/oil/corba/idl/sysex.lua +21 -0
  306. data/vendor/lua/lib/lua/oil/corba/iiop/Profiler.lua +200 -0
  307. data/vendor/lua/lib/lua/oil/corba/intercepted/Listener.lua +158 -0
  308. data/vendor/lua/lib/lua/oil/corba/intercepted/Requester.lua +181 -0
  309. data/vendor/lua/lib/lua/oil/corba/services/event.lua +126 -0
  310. data/vendor/lua/lib/lua/oil/corba/services/event/ConsumerAdmin.lua +50 -0
  311. data/vendor/lua/lib/lua/oil/corba/services/event/EventFactory.lua +15 -0
  312. data/vendor/lua/lib/lua/oil/corba/services/event/EventQueue.lua +37 -0
  313. data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushConsumer.lua +75 -0
  314. data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushSupplier.lua +62 -0
  315. data/vendor/lua/lib/lua/oil/corba/services/event/SingleDeferredDispatcher.lua +60 -0
  316. data/vendor/lua/lib/lua/oil/corba/services/event/SingleSynchronousDispatcher.lua +39 -0
  317. data/vendor/lua/lib/lua/oil/corba/services/event/SupplierAdmin.lua +50 -0
  318. data/vendor/lua/lib/lua/oil/corba/services/naming.lua +436 -0
  319. data/vendor/lua/lib/lua/oil/kernel/base/Acceptor.lua +268 -0
  320. data/vendor/lua/lib/lua/oil/kernel/base/Channels.lua +121 -0
  321. data/vendor/lua/lib/lua/oil/kernel/base/Connector.lua +147 -0
  322. data/vendor/lua/lib/lua/oil/kernel/base/Dispatcher.lua +99 -0
  323. data/vendor/lua/lib/lua/oil/kernel/base/Proxies.lua +86 -0
  324. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/asynchronous.lua +56 -0
  325. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/protected.lua +17 -0
  326. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/synchronous.lua +17 -0
  327. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/utils.lua +29 -0
  328. data/vendor/lua/lib/lua/oil/kernel/base/Receiver.lua +110 -0
  329. data/vendor/lua/lib/lua/oil/kernel/base/Servants.lua +207 -0
  330. data/vendor/lua/lib/lua/oil/kernel/base/Sockets.lua +44 -0
  331. data/vendor/lua/lib/lua/oil/kernel/cooperative/Receiver.lua +139 -0
  332. data/vendor/lua/lib/lua/oil/kernel/intercepted/Listener.lua +47 -0
  333. data/vendor/lua/lib/lua/oil/kernel/intercepted/Requester.lua +58 -0
  334. data/vendor/lua/lib/lua/oil/kernel/lua/Dispatcher.lua +76 -0
  335. data/vendor/lua/lib/lua/oil/kernel/lua/Proxies.lua +69 -0
  336. data/vendor/lua/lib/lua/oil/kernel/typed/Dispatcher.lua +91 -0
  337. data/vendor/lua/lib/lua/oil/kernel/typed/Proxies.lua +153 -0
  338. data/vendor/lua/lib/lua/oil/kernel/typed/Servants.lua +137 -0
  339. data/vendor/lua/lib/lua/oil/ludo/Codec.lua +66 -0
  340. data/vendor/lua/lib/lua/oil/ludo/CodecByRef.lua +103 -0
  341. data/vendor/lua/lib/lua/oil/ludo/Listener.lua +151 -0
  342. data/vendor/lua/lib/lua/oil/ludo/Referrer.lua +72 -0
  343. data/vendor/lua/lib/lua/oil/ludo/Requester.lua +107 -0
  344. data/vendor/lua/lib/lua/oil/oo.lua +1 -0
  345. data/vendor/lua/lib/lua/oil/port.lua +1 -0
  346. data/vendor/lua/lib/lua/oil/properties.lua +57 -0
  347. data/vendor/lua/lib/lua/oil/verbose.lua +133 -0
  348. data/vendor/lua/lib/lua/package_ext.lua +15 -0
  349. data/vendor/lua/lib/lua/parser.lua +268 -0
  350. data/vendor/lua/lib/lua/pl/Date.lua +555 -0
  351. data/vendor/lua/lib/lua/pl/List.lua +613 -0
  352. data/vendor/lua/lib/lua/pl/Map.lua +113 -0
  353. data/vendor/lua/lib/lua/pl/MultiMap.lua +62 -0
  354. data/vendor/lua/lib/lua/pl/OrderedMap.lua +151 -0
  355. data/vendor/lua/lib/lua/pl/Set.lua +153 -0
  356. data/vendor/lua/lib/lua/pl/app.lua +165 -0
  357. data/vendor/lua/lib/lua/pl/array2d.lua +501 -0
  358. data/vendor/lua/lib/lua/pl/class.lua +180 -0
  359. data/vendor/lua/lib/lua/pl/comprehension.lua +286 -0
  360. data/vendor/lua/lib/lua/pl/config.lua +176 -0
  361. data/vendor/lua/lib/lua/pl/data.lua +606 -0
  362. data/vendor/lua/lib/lua/pl/dir.lua +475 -0
  363. data/vendor/lua/lib/lua/pl/file.lua +70 -0
  364. data/vendor/lua/lib/lua/pl/func.lua +376 -0
  365. data/vendor/lua/lib/lua/pl/init.lua +68 -0
  366. data/vendor/lua/lib/lua/pl/input.lua +173 -0
  367. data/vendor/lua/lib/lua/pl/lapp.lua +407 -0
  368. data/vendor/lua/lib/lua/pl/lexer.lua +456 -0
  369. data/vendor/lua/lib/lua/pl/luabalanced.lua +264 -0
  370. data/vendor/lua/lib/lua/pl/operator.lua +201 -0
  371. data/vendor/lua/lib/lua/pl/path.lua +398 -0
  372. data/vendor/lua/lib/lua/pl/permute.lua +63 -0
  373. data/vendor/lua/lib/lua/pl/platf/luajava.lua +101 -0
  374. data/vendor/lua/lib/lua/pl/pretty.lua +285 -0
  375. data/vendor/lua/lib/lua/pl/seq.lua +551 -0
  376. data/vendor/lua/lib/lua/pl/sip.lua +344 -0
  377. data/vendor/lua/lib/lua/pl/strict.lua +70 -0
  378. data/vendor/lua/lib/lua/pl/stringio.lua +158 -0
  379. data/vendor/lua/lib/lua/pl/stringx.lua +440 -0
  380. data/vendor/lua/lib/lua/pl/tablex.lua +817 -0
  381. data/vendor/lua/lib/lua/pl/template.lua +103 -0
  382. data/vendor/lua/lib/lua/pl/test.lua +135 -0
  383. data/vendor/lua/lib/lua/pl/text.lua +243 -0
  384. data/vendor/lua/lib/lua/pl/utils.lua +550 -0
  385. data/vendor/lua/lib/lua/pl/xml.lua +689 -0
  386. data/vendor/lua/lib/lua/profiler.dll +0 -0
  387. data/vendor/lua/lib/lua/re.lua +248 -0
  388. data/vendor/lua/lib/lua/rex_onig.dll +0 -0
  389. data/vendor/lua/lib/lua/rex_pcre.dll +0 -0
  390. data/vendor/lua/lib/lua/rex_posix.dll +0 -0
  391. data/vendor/lua/lib/lua/rings.dll +0 -0
  392. data/vendor/lua/lib/lua/serialize.lua +193 -0
  393. data/vendor/lua/lib/lua/set.lua +149 -0
  394. data/vendor/lua/lib/lua/socket.lua +133 -0
  395. data/vendor/lua/lib/lua/socket/core.dll +0 -0
  396. data/vendor/lua/lib/lua/socket/ftp.lua +281 -0
  397. data/vendor/lua/lib/lua/socket/http.lua +350 -0
  398. data/vendor/lua/lib/lua/socket/smtp.lua +251 -0
  399. data/vendor/lua/lib/lua/socket/tp.lua +123 -0
  400. data/vendor/lua/lib/lua/socket/url.lua +297 -0
  401. data/vendor/lua/lib/lua/ssl.dll +0 -0
  402. data/vendor/lua/lib/lua/ssl.lua +93 -0
  403. data/vendor/lua/lib/lua/ssl/https.lua +138 -0
  404. data/vendor/lua/lib/lua/stable.lua +28 -0
  405. data/vendor/lua/lib/lua/std.lua +16 -0
  406. data/vendor/lua/lib/lua/strbuf.lua +32 -0
  407. data/vendor/lua/lib/lua/strict.lua +45 -0
  408. data/vendor/lua/lib/lua/string_ext.lua +274 -0
  409. data/vendor/lua/lib/lua/table_ext.lua +117 -0
  410. data/vendor/lua/lib/lua/tar.lua +262 -0
  411. data/vendor/lua/lib/lua/task.dll +0 -0
  412. data/vendor/lua/lib/lua/tree.lua +81 -0
  413. data/vendor/lua/lib/lua/unicode.dll +0 -0
  414. data/vendor/lua/lib/lua/verbose_require.lua +11 -0
  415. data/vendor/lua/lib/lua/vstruct.lua +86 -0
  416. data/vendor/lua/lib/lua/vstruct/ast.lua +192 -0
  417. data/vendor/lua/lib/lua/vstruct/ast/Bitpack.lua +33 -0
  418. data/vendor/lua/lib/lua/vstruct/ast/Generator.lua +174 -0
  419. data/vendor/lua/lib/lua/vstruct/ast/IO.lua +45 -0
  420. data/vendor/lua/lib/lua/vstruct/ast/List.lua +56 -0
  421. data/vendor/lua/lib/lua/vstruct/ast/Name.lua +20 -0
  422. data/vendor/lua/lib/lua/vstruct/ast/Repeat.lua +23 -0
  423. data/vendor/lua/lib/lua/vstruct/ast/Root.lua +19 -0
  424. data/vendor/lua/lib/lua/vstruct/ast/Table.lua +65 -0
  425. data/vendor/lua/lib/lua/vstruct/cursor.lua +81 -0
  426. data/vendor/lua/lib/lua/vstruct/io.lua +45 -0
  427. data/vendor/lua/lib/lua/vstruct/io/a.lua +24 -0
  428. data/vendor/lua/lib/lua/vstruct/io/b.lua +28 -0
  429. data/vendor/lua/lib/lua/vstruct/io/bigendian.lua +21 -0
  430. data/vendor/lua/lib/lua/vstruct/io/c.lua +25 -0
  431. data/vendor/lua/lib/lua/vstruct/io/defaults.lua +24 -0
  432. data/vendor/lua/lib/lua/vstruct/io/endianness.lua +41 -0
  433. data/vendor/lua/lib/lua/vstruct/io/f.lua +129 -0
  434. data/vendor/lua/lib/lua/vstruct/io/hostendian.lua +21 -0
  435. data/vendor/lua/lib/lua/vstruct/io/i.lua +42 -0
  436. data/vendor/lua/lib/lua/vstruct/io/littleendian.lua +21 -0
  437. data/vendor/lua/lib/lua/vstruct/io/m.lua +62 -0
  438. data/vendor/lua/lib/lua/vstruct/io/p.lua +23 -0
  439. data/vendor/lua/lib/lua/vstruct/io/s.lua +27 -0
  440. data/vendor/lua/lib/lua/vstruct/io/seekb.lua +18 -0
  441. data/vendor/lua/lib/lua/vstruct/io/seekf.lua +18 -0
  442. data/vendor/lua/lib/lua/vstruct/io/seekto.lua +18 -0
  443. data/vendor/lua/lib/lua/vstruct/io/u.lua +54 -0
  444. data/vendor/lua/lib/lua/vstruct/io/x.lua +34 -0
  445. data/vendor/lua/lib/lua/vstruct/io/z.lua +63 -0
  446. data/vendor/lua/lib/lua/vstruct/lexer.lua +100 -0
  447. data/vendor/lua/lib/lua/vstruct/pack.lua +142 -0
  448. data/vendor/lua/lib/lua/vstruct/test.lua +47 -0
  449. data/vendor/lua/lib/lua/vstruct/test/basic.lua +73 -0
  450. data/vendor/lua/lib/lua/vstruct/test/common.lua +100 -0
  451. data/vendor/lua/lib/lua/vstruct/test/fp-bigendian.lua +56 -0
  452. data/vendor/lua/lib/lua/vstruct/test/fp-littleendian.lua +56 -0
  453. data/vendor/lua/lib/lua/vstruct/test/struct-test-gen.lua +1230 -0
  454. data/vendor/lua/lib/lua/vstruct/unpack.lua +126 -0
  455. data/vendor/lua/lib/lua/wx.dll +0 -0
  456. data/vendor/lua/lib/lua/xml.lua +75 -0
  457. data/vendor/lua/lib/lua/zip.dll +0 -0
  458. data/vendor/lua/lib/lua/zlib.dll +0 -0
  459. metadata +529 -0
Binary file
@@ -0,0 +1,116 @@
1
+ --- Tables mapped to the filing system
2
+ -- Only string keys are permitted; package.dirsep characters are
3
+ -- converted to underscores.
4
+ -- Values are stored as strings (converted by tostring).
5
+ -- As with disk operations, a table's elements must be set to nil
6
+ -- (deleted) before the table itself can be set to nil.
7
+ module ("fstable", package.seeall)
8
+
9
+ require "io_ext"
10
+ require "table_ext"
11
+
12
+ require "io_ext"
13
+ require "lfs"
14
+ require "posix"
15
+
16
+ local function fsnext (dir)
17
+ local f
18
+ repeat
19
+ f = dir:next ()
20
+ until f ~= "." and f ~= ".."
21
+ return f
22
+ end
23
+
24
+ -- Metamethods for persistent tables
25
+ local metatable = {}
26
+
27
+ metatable.__index =
28
+ function (t, k)
29
+ local path = io.catfile (getmetatable (t).directory, k)
30
+ local attrs = lfs.attributes (path)
31
+ if attrs then
32
+ if attrs.mode == "file" then
33
+ return io.slurp (path)
34
+ elseif attrs.mode == "directory" then
35
+ return new (path)
36
+ end
37
+ end
38
+ return attrs
39
+ end
40
+
41
+ metatable.__newindex =
42
+ function (t, k, v)
43
+ local ty = type (v)
44
+ if ty == "thread" or ty == "function" or ty == "userdata" then
45
+ error ("cannot persist a " .. ty .. "")
46
+ elseif type (k) ~= "string" then
47
+ error ("keys of persistent tables must be of type string")
48
+ else
49
+ k = string.gsub (k, package.dirsep, "_")
50
+ local path = io.catfile (getmetatable (t).directory, k)
51
+ local vm = getmetatable (v)
52
+ if v == nil then
53
+ os.remove (path)
54
+ elseif type (v) ~= "table" then
55
+ local h = io.open (path, "w")
56
+ h:write (tostring (v))
57
+ h:close ()
58
+ elseif type (vm) == "table" and vm.metatable == metatable then
59
+ -- To match Lua semantics we'd hardlink, but that's not allowed for directories
60
+ local ok, errmsg = posix.link (vm.directory, path, true)
61
+ else
62
+ local ok, errmsg = lfs.mkdir (path)
63
+ if not ok then
64
+ error (errmsg)
65
+ end
66
+ new (path, v)
67
+ end
68
+ end
69
+ end
70
+
71
+ metatable.__pairs =
72
+ function (t)
73
+ local _, dir = lfs.dir (getmetatable (t).directory)
74
+ return function (dir)
75
+ local f = fsnext (dir)
76
+ if f then
77
+ return f, t[f]
78
+ end
79
+ end,
80
+ dir
81
+ end
82
+
83
+ metatable.__ipairs =
84
+ function (t)
85
+ local _, dir = lfs.dir (getmetatable (t).directory)
86
+ return function (dir, i)
87
+ local f = fsnext (dir)
88
+ if f then
89
+ return i + 1, f
90
+ end
91
+ end,
92
+ dir, 0
93
+ end
94
+
95
+ --- Bind a directory to a table
96
+ -- @param path directory path
97
+ -- @param t table to merge with directory
98
+ -- @return table bound to directory
99
+ function new (path, t)
100
+ if not path:find ("^" .. package.dirsep) then
101
+ path = io.catfile (lfs.currentdir (), path)
102
+ end
103
+ if lfs.attributes (path, "mode") ~= "directory" then
104
+ error ("`" .. path .. "' does not exist or is not a directory")
105
+ end
106
+ local m = table.clone (metatable)
107
+ m.directory = path
108
+ m.metatable = metatable
109
+ local d = setmetatable ({}, m)
110
+ if t then
111
+ for i, v in pairs (t) do
112
+ d[i] = v
113
+ end
114
+ end
115
+ return d
116
+ end
@@ -0,0 +1,273 @@
1
+ --- Simplified getopt, based on Svenne Panne's Haskell GetOpt.<br>
2
+ -- Usage:
3
+ -- <ul>
4
+ -- <li><code>options = {Option {...}, ...}</br>
5
+ -- getopt.processArgs ()</code></li>
6
+ -- <li>Assumes <code>prog = {name[, banner] [, purpose] [, notes] [, usage]}</code></li>
7
+ -- <li>Options take a single dash, but may have a double dash.</li>
8
+ -- <li>Arguments may be given as <code>-opt=arg</code> or <code>-opt arg</code>.</li>
9
+ -- <li>If an option taking an argument is given multiple times, only the
10
+ -- last value is returned; missing arguments are returned as 1.</li>
11
+ -- </ul>
12
+ -- getOpt, usageInfo and usage can be called directly (see
13
+ -- below, and the example at the end). Set _DEBUG.std to a non-nil
14
+ -- value to run the example.
15
+ -- <ul>
16
+ -- <li>TODO: Sort out the packaging. getopt.Option is tedious to type, but
17
+ -- surely Option shouldn't be in the root namespace?</li>
18
+ -- <li>TODO: Wrap all messages; do all wrapping in processArgs, not
19
+ -- usageInfo; use sdoc-like library (see string.format todos).</li>
20
+ -- <li>TODO: Don't require name to be repeated in banner.</li>
21
+ -- <li>TODO: Store version separately (construct banner?).</li>
22
+ -- </ul>
23
+ module ("getopt", package.seeall)
24
+
25
+ require "base"
26
+ require "list"
27
+ require "string_ext"
28
+ require "object"
29
+
30
+
31
+ --- Perform argument processing
32
+ -- @param argIn list of command-line args
33
+ -- @param options options table
34
+ -- @return table of remaining non-options
35
+ -- @return table of option key-value list pairs
36
+ -- @return table of error messages
37
+ function getOpt (argIn, options)
38
+ local noProcess = nil
39
+ local argOut, optOut, errors = {[0] = argIn[0]}, {}, {}
40
+ -- get an argument for option opt
41
+ local function getArg (o, opt, arg, oldarg)
42
+ if o.type == nil then
43
+ if arg ~= nil then
44
+ table.insert (errors, "option `" .. opt .. "' doesn't take an argument")
45
+ end
46
+ else
47
+ if arg == nil and argIn[1] and
48
+ string.sub (argIn[1], 1, 1) ~= "-" then
49
+ arg = argIn[1]
50
+ table.remove (argIn, 1)
51
+ end
52
+ if arg == nil and o.type == "Req" then
53
+ table.insert (errors, "option `" .. opt ..
54
+ "' requires an argument `" .. o.var .. "'")
55
+ return nil
56
+ end
57
+ end
58
+ return arg or 1 -- make sure arg has a value
59
+ end
60
+
61
+ local function parseOpt (opt, arg)
62
+ local o = options.name[opt]
63
+ if o ~= nil then
64
+ optOut[o.name[1]] = optOut[o.name[1]] or {}
65
+ table.insert (optOut[o.name[1]], getArg (o, opt, arg, optOut[o.name[1]]))
66
+ else
67
+ table.insert (errors, "unrecognized option `-" .. opt .. "'")
68
+ end
69
+ end
70
+ while argIn[1] do
71
+ local v = argIn[1]
72
+ table.remove (argIn, 1)
73
+ local _, _, dash, opt = string.find (v, "^(%-%-?)([^=-][^=]*)")
74
+ local _, _, arg = string.find (v, "=(.*)$")
75
+ if v == "--" then
76
+ noProcess = 1
77
+ elseif dash == nil or noProcess then -- non-option
78
+ table.insert (argOut, v)
79
+ else -- option
80
+ parseOpt (opt, arg)
81
+ end
82
+ end
83
+ return argOut, optOut, errors
84
+ end
85
+
86
+
87
+ --- Options table type.
88
+ -- @class table
89
+ -- @name _G.Option
90
+ -- @field name list of names
91
+ -- @field desc description of this option
92
+ -- @field type type of argument (if any): <code>Req</code>(uired),
93
+ -- <code>Opt</code>(ional)
94
+ -- @field var descriptive name for the argument
95
+ _G.Option = Object {_init = {"name", "desc", "type", "var"}}
96
+
97
+ --- Options table constructor: adds lookup tables for the option names
98
+ local function makeOptions (t)
99
+ t = list.concat (t or {},
100
+ {Option {{"version", "V"},
101
+ "output version information and exit"},
102
+ Option {{"help", "h"},
103
+ "display this help and exit"}}
104
+ )
105
+ local name = {}
106
+ for v in list.elems (t) do
107
+ for j, s in pairs (v.name) do
108
+ if name[s] then
109
+ warn ("duplicate option '%s'", s)
110
+ end
111
+ name[s] = v
112
+ end
113
+ end
114
+ t.name = name
115
+ return t
116
+ end
117
+
118
+
119
+ --- Produce usage info for the given options
120
+ -- @param header header string
121
+ -- @param optDesc option descriptors
122
+ -- @param pageWidth width to format to [78]
123
+ -- @return formatted string
124
+ function usageInfo (header, optDesc, pageWidth)
125
+ pageWidth = pageWidth or 78
126
+ -- Format the usage info for a single option
127
+ -- @param opt the Option table
128
+ -- @return options
129
+ -- @return description
130
+ local function fmtOpt (opt)
131
+ local function fmtName (o)
132
+ return "-" .. o
133
+ end
134
+ local function fmtArg ()
135
+ if opt.type == nil then
136
+ return ""
137
+ elseif opt.type == "Req" then
138
+ return "=" .. opt.var
139
+ else
140
+ return "[=" .. opt.var .. "]"
141
+ end
142
+ end
143
+ local textName = list.reverse (list.map (fmtName, opt.name))
144
+ textName[#textName] = textName[#textName] .. fmtArg ()
145
+ return {table.concat ({table.concat (textName, ", ")}, ", "),
146
+ opt.desc}
147
+ end
148
+ local function sameLen (xs)
149
+ local n = math.max (unpack (list.map (string.len, xs)))
150
+ for i, v in pairs (xs) do
151
+ xs[i] = string.sub (v .. string.rep (" ", n), 1, n)
152
+ end
153
+ return xs, n
154
+ end
155
+ local function paste (x, y)
156
+ return " " .. x .. " " .. y
157
+ end
158
+ local function wrapper (w, i)
159
+ return function (s)
160
+ return string.wrap (s, w, i, 0)
161
+ end
162
+ end
163
+ local optText = ""
164
+ if #optDesc > 0 then
165
+ local cols = list.transpose (list.map (fmtOpt, optDesc))
166
+ local width
167
+ cols[1], width = sameLen (cols[1])
168
+ cols[2] = list.map (wrapper (pageWidth, width + 4), cols[2])
169
+ optText = "\n\n" ..
170
+ table.concat (list.mapWith (paste,
171
+ list.transpose ({sameLen (cols[1]),
172
+ cols[2]})),
173
+ "\n")
174
+ end
175
+ return header .. optText
176
+ end
177
+
178
+ --- Emit a usage message.
179
+ function usage ()
180
+ local usage, purpose, notes = "[OPTION]... [FILE]...", "", ""
181
+ if prog.usage then
182
+ usage = prog.usage
183
+ end
184
+ if prog.purpose then
185
+ purpose = "\n" .. prog.purpose
186
+ end
187
+ if prog.notes then
188
+ notes = "\n\n"
189
+ if not string.find (prog.notes, "\n") then
190
+ notes = notes .. string.wrap (prog.notes)
191
+ else
192
+ notes = notes .. prog.notes
193
+ end
194
+ end
195
+ io.writelines (getopt.usageInfo ("Usage: " .. prog.name .. " " .. usage .. purpose,
196
+ options)
197
+ .. notes)
198
+ end
199
+
200
+
201
+ --- Simple getOpt wrapper.
202
+ -- Adds <code>-version</code>/<code>-V</code> and
203
+ -- <code>-help</code>/<code>-h</code> automatically;
204
+ -- stops program if there was an error, or if <code>-help</code> or
205
+ -- <code>-version</code> was used.
206
+ function processArgs ()
207
+ local totArgs = #arg
208
+ options = makeOptions (options)
209
+ local errors
210
+ _G.arg, opt, errors = getopt.getOpt (arg, options)
211
+ if (opt.version or opt.help) and prog.banner then
212
+ io.writelines (prog.banner)
213
+ end
214
+ if #errors > 0 or opt.help then
215
+ local name = prog.name
216
+ prog.name = nil
217
+ if #errors > 0 then
218
+ warn (table.concat (errors, "\n") .. "\n")
219
+ end
220
+ prog.name = name
221
+ getopt.usage ()
222
+ if #errors > 0 then
223
+ error ()
224
+ end
225
+ end
226
+ if opt.version or opt.help then
227
+ os.exit ()
228
+ end
229
+ end
230
+ _G.options = nil
231
+
232
+
233
+ -- A small and hopefully enlightening example:
234
+ if type (_DEBUG) == "table" and _DEBUG.std then
235
+
236
+ options = makeOptions ({
237
+ Option {{"verbose", "v"}, "verbosely list files"},
238
+ Option {{"output", "o"}, "dump to FILE", "Opt", "FILE"},
239
+ Option {{"name", "n"}, "only dump USER's files", "Req", "USER"},
240
+ })
241
+
242
+ function test (cmdLine)
243
+ local nonOpts, opts, errors = getopt.getOpt (cmdLine, options)
244
+ if #errors == 0 then
245
+ print ("options=" .. tostring (opts) ..
246
+ " args=" .. tostring (nonOpts) .. "\n")
247
+ else
248
+ print (table.concat (errors, "\n") .. "\n" ..
249
+ getopt.usageInfo ("Usage: foobar [OPTION...] FILE...",
250
+ options))
251
+ end
252
+ end
253
+
254
+ -- FIXME: Turn the following documentation into unit tests
255
+ prog = {name = "foobar"} -- for errors
256
+ -- Example runs:
257
+ test {"foo", "-v"}
258
+ -- options={verbose={1}} args={1=foo}
259
+ test {"foo", "--", "-v"}
260
+ -- options={} args={1=foo,2=-v}
261
+ test {"-o", "-V", "-name", "bar", "--name=baz"}
262
+ -- options={name={"baz"},version={1},output={1}} args={}
263
+ test {"-foo"}
264
+ -- unrecognized option `-foo'
265
+ -- Usage: foobar [OPTION]... [FILE]...
266
+ --
267
+ -- -v, -verbose verbosely list files
268
+ -- -o, -output[=FILE] dump to FILE
269
+ -- -n, -name=USER only dump USER's files
270
+ -- -V, -version output version information and exit
271
+ -- -h, -help display this help and exit
272
+
273
+ end
@@ -0,0 +1,5 @@
1
+ require 'git.util'
2
+ require 'git.objects'
3
+ require 'git.pack'
4
+ require 'git.repo'
5
+ require 'git.protocol'
@@ -0,0 +1,121 @@
1
+ local util = require 'git.util'
2
+
3
+ local assert, next, io, print, os, type, string, pairs, tostring =
4
+ assert, next, io, print, os, type, string, pairs, tostring
5
+ local join_path = git.util.join_path
6
+
7
+ local require = require
8
+
9
+ local isPosix = package.config:sub(1,1) == '/' -- wild guess
10
+
11
+ module(...)
12
+
13
+ Commit = {}
14
+ Commit.__index = Commit
15
+
16
+ function Commit:tree()
17
+ return self.repo:tree(self.tree_sha)
18
+ end
19
+
20
+ function Commit:checkout(path)
21
+ assert(path, 'path argument missing')
22
+ self:tree():checkoutTo(path)
23
+ end
24
+
25
+
26
+ Tree = {}
27
+ Tree.__index = function (t,k)
28
+ if Tree[k] then return Tree[k] end
29
+ return t:entry(k)
30
+ end
31
+
32
+ function Tree:entries()
33
+ return function(t, n)
34
+ local n, entry = next(t, n)
35
+ if entry then
36
+ local object
37
+ if entry.type == 'tree' then
38
+ object = self.repo:tree(entry.id)
39
+ elseif entry.type == 'blob' then
40
+ object = self.repo:blob(entry.id)
41
+ object.mode = entry.mode
42
+ elseif entry.type == 'commit' then
43
+ -- this is possibly a commit in a submodule,
44
+ -- do not retrieve it from current repo
45
+ object = entry
46
+ else
47
+ error('Unknown entry type: ' .. entry.type)
48
+ end
49
+ return n, entry.type, object
50
+ end
51
+ end, self._entries
52
+ end
53
+
54
+ function Tree:entry(n)
55
+ local e = self._entries[n]
56
+ if not e then return end
57
+ if e.type == 'tree' then
58
+ return self.repo:tree(e.id)
59
+ elseif e.type == 'commit' then
60
+ return self.repo:commit(e.id)
61
+ elseif e.type == 'blob' then
62
+ return self.repo:blob(e.id)
63
+ else
64
+ error('Unknown entry type: ' .. e.type)
65
+ end
66
+ end
67
+
68
+ function Tree:walk(func, path)
69
+ path = path or '.'
70
+ assert(type(func) == "function", "argument is not a function")
71
+ local function walk(tree, path)
72
+ for name, type, entry in tree:entries() do
73
+ local entry_path = join_path(path, name)
74
+ func(entry, entry_path, type)
75
+
76
+ if type == "tree" then
77
+ walk(entry, entry_path)
78
+ end
79
+ end
80
+ end
81
+ walk(self, path)
82
+ end
83
+
84
+ function Tree:checkoutTo(path)
85
+ util.make_dir(path)
86
+ self:walk(function (entry, entry_path, type)
87
+ if type == 'tree' then
88
+ util.make_dir(entry_path)
89
+ elseif type == 'blob' then
90
+ local out = assert(io.open(entry_path, 'wb'))
91
+ out:write(entry:content())
92
+ out:close()
93
+ if isPosix then
94
+ local mode = entry.mode:sub(-3,-1) -- fixme: is this ok?
95
+ local cmd = 'chmod '..mode..' "'..entry_path..'"'
96
+ os.execute(cmd)
97
+ end
98
+ elseif type == 'commit' then
99
+ -- this is a submodule referencing a commit,
100
+ -- make a directory for it
101
+ util.make_dir(entry_path)
102
+ else
103
+ error('Unknown entry type: ', type)
104
+ end
105
+ end, path)
106
+ end
107
+
108
+ Blob = {}
109
+ Blob.__index = Blob
110
+
111
+ function Blob:content()
112
+ if self.stored then
113
+ local f = self.repo:raw_object(self.id)
114
+ local ret = f:read('*a') or ""
115
+ f:close()
116
+ return ret
117
+ else
118
+ return self.data
119
+ end
120
+ end
121
+