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
@@ -0,0 +1,144 @@
1
+
2
+ --- A pure-Lua implementation of untar (unpacking .tar archives)
3
+ module("luarocks.tools.tar", package.seeall)
4
+
5
+ local fs = require("luarocks.fs")
6
+ local dir = require("luarocks.dir")
7
+ local util = require("luarocks.util")
8
+
9
+ local blocksize = 512
10
+
11
+ local function get_typeflag(flag)
12
+ if flag == "0" or flag == "\0" then return "file"
13
+ elseif flag == "1" then return "link"
14
+ elseif flag == "2" then return "symlink" -- "reserved" in POSIX, "symlink" in GNU
15
+ elseif flag == "3" then return "character"
16
+ elseif flag == "4" then return "block"
17
+ elseif flag == "5" then return "directory"
18
+ elseif flag == "6" then return "fifo"
19
+ elseif flag == "7" then return "contiguous" -- "reserved" in POSIX, "contiguous" in GNU
20
+ elseif flag == "x" then return "next file"
21
+ elseif flag == "g" then return "global extended header"
22
+ elseif flag == "L" then return "long name"
23
+ elseif flag == "K" then return "long link name"
24
+ end
25
+ return "unknown"
26
+ end
27
+
28
+ local function octal_to_number(octal)
29
+ local exp = 0
30
+ local number = 0
31
+ for i = #octal,1,-1 do
32
+ local digit = tonumber(octal:sub(i,i))
33
+ if not digit then break end
34
+ number = number + (digit * 8^exp)
35
+ exp = exp + 1
36
+ end
37
+ return number
38
+ end
39
+
40
+ local function checksum_header(block)
41
+ local sum = 256
42
+ for i = 1,148 do
43
+ sum = sum + block:byte(i)
44
+ end
45
+ for i = 157,500 do
46
+ sum = sum + block:byte(i)
47
+ end
48
+ return sum
49
+ end
50
+
51
+ local function nullterm(s)
52
+ return s:match("^[^%z]*")
53
+ end
54
+
55
+ local function read_header_block(block)
56
+ local header = {}
57
+ header.name = nullterm(block:sub(1,100))
58
+ header.mode = nullterm(block:sub(101,108))
59
+ header.uid = octal_to_number(nullterm(block:sub(109,116)))
60
+ header.gid = octal_to_number(nullterm(block:sub(117,124)))
61
+ header.size = octal_to_number(nullterm(block:sub(125,136)))
62
+ header.mtime = octal_to_number(nullterm(block:sub(137,148)))
63
+ header.chksum = octal_to_number(nullterm(block:sub(149,156)))
64
+ header.typeflag = get_typeflag(block:sub(157,157))
65
+ header.linkname = nullterm(block:sub(158,257))
66
+ header.magic = block:sub(258,263)
67
+ header.version = block:sub(264,265)
68
+ header.uname = nullterm(block:sub(266,297))
69
+ header.gname = nullterm(block:sub(298,329))
70
+ header.devmajor = octal_to_number(nullterm(block:sub(330,337)))
71
+ header.devminor = octal_to_number(nullterm(block:sub(338,345)))
72
+ header.prefix = block:sub(346,500)
73
+ if header.magic ~= "ustar " and header.magic ~= "ustar\0" then
74
+ return false, "Invalid header magic "..header.magic
75
+ end
76
+ if header.version ~= "00" and header.version ~= " \0" then
77
+ return false, "Unknown version "..header.version
78
+ end
79
+ if not checksum_header(block) == header.chksum then
80
+ return false, "Failed header checksum"
81
+ end
82
+ return header
83
+ end
84
+
85
+ function untar(filename, destdir)
86
+ assert(type(filename) == "string")
87
+ assert(type(destdir) == "string")
88
+
89
+ local tar_handle = io.open(filename, "r")
90
+ if not tar_handle then return nil, "Error opening file "..filename end
91
+
92
+ local long_name, long_link_name
93
+ while true do
94
+ local block
95
+ repeat
96
+ block = tar_handle:read(blocksize)
97
+ until (not block) or checksum_header(block) > 256
98
+ if not block then break end
99
+ local header, err = read_header_block(block)
100
+ if not header then
101
+ util.printerr(err)
102
+ end
103
+
104
+ local file_data = tar_handle:read(math.ceil(header.size / blocksize) * blocksize):sub(1,header.size)
105
+
106
+ if header.typeflag == "long name" then
107
+ long_name = nullterm(file_data)
108
+ elseif header.typeflag == "long link name" then
109
+ long_link_name = nullterm(file_data)
110
+ else
111
+ if long_name then
112
+ header.name = long_name
113
+ long_name = nil
114
+ end
115
+ if long_link_name then
116
+ header.name = long_link_name
117
+ long_link_name = nil
118
+ end
119
+ end
120
+ local pathname = dir.path(destdir, header.name)
121
+ if header.typeflag == "directory" then
122
+ fs.make_dir(pathname)
123
+ elseif header.typeflag == "file" then
124
+ local dirname = dir.dir_name(pathname)
125
+ if dirname ~= "" then
126
+ fs.make_dir(dirname)
127
+ end
128
+ local file_handle = io.open(pathname, "wb")
129
+ file_handle:write(file_data)
130
+ file_handle:close()
131
+ fs.set_time(pathname, header.mtime)
132
+ if fs.chmod then
133
+ fs.chmod(pathname, header.mode)
134
+ end
135
+ end
136
+ --[[
137
+ for k,v in pairs(header) do
138
+ util.printout("[\""..tostring(k).."\"] = "..(type(v)=="number" and v or "\""..v:gsub("%z", "\\0").."\""))
139
+ end
140
+ util.printout()
141
+ --]]
142
+ end
143
+ return true
144
+ end
@@ -0,0 +1,245 @@
1
+
2
+ --- A Lua implementation of .zip file archiving (used for creating .rock files),
3
+ -- using only lua-zlib.
4
+ module("luarocks.tools.zip", package.seeall)
5
+
6
+ local zlib = require("zlib")
7
+ local fs = require("luarocks.fs")
8
+ local dir = require("luarocks.dir")
9
+
10
+ local function number_to_bytestring(number, nbytes)
11
+ local out = {}
12
+ for i = 1, nbytes do
13
+ local byte = number % 256
14
+ table.insert(out, string.char(byte))
15
+ number = (number - byte) / 256
16
+ end
17
+ return table.concat(out)
18
+ end
19
+
20
+ --- Begin a new file to be stored inside the zipfile.
21
+ -- @param self handle of the zipfile being written.
22
+ -- @param filename filenome of the file to be added to the zipfile.
23
+ -- @return true if succeeded, nil in case of failure.
24
+ local function zipwriter_open_new_file_in_zip(self, filename)
25
+ if self.in_open_file then
26
+ self:close_file_in_zip()
27
+ return nil
28
+ end
29
+ local lfh = {}
30
+ self.local_file_header = lfh
31
+ lfh.last_mod_file_time = 0 -- TODO
32
+ lfh.last_mod_file_date = 0 -- TODO
33
+ lfh.crc32 = 0 -- initial value
34
+ lfh.compressed_size = 0 -- unknown yet
35
+ lfh.uncompressed_size = 0 -- unknown yet
36
+ lfh.file_name_length = #filename
37
+ lfh.extra_field_length = 0
38
+ lfh.file_name = filename:gsub("\\", "/")
39
+ lfh.external_attr = 0 -- TODO properly store permissions
40
+ self.in_open_file = true
41
+ self.data = {}
42
+ return true
43
+ end
44
+
45
+ --- Write data to the file currently being stored in the zipfile.
46
+ -- @param self handle of the zipfile being written.
47
+ -- @param buf string containing data to be written.
48
+ -- @return true if succeeded, nil in case of failure.
49
+ local function zipwriter_write_file_in_zip(self, buf)
50
+ if not self.in_open_file then
51
+ return nil
52
+ end
53
+ local lfh = self.local_file_header
54
+ local cbuf = zlib.compress(buf):sub(3, -5)
55
+ lfh.crc32 = zlib.crc32(lfh.crc32, buf)
56
+ lfh.compressed_size = lfh.compressed_size + #cbuf
57
+ lfh.uncompressed_size = lfh.uncompressed_size + #buf
58
+ table.insert(self.data, cbuf)
59
+ return true
60
+ end
61
+
62
+ --- Complete the writing of a file stored in the zipfile.
63
+ -- @param self handle of the zipfile being written.
64
+ -- @return true if succeeded, nil in case of failure.
65
+ local function zipwriter_close_file_in_zip(self)
66
+ local zh = self.ziphandle
67
+
68
+ if not self.in_open_file then
69
+ return nil
70
+ end
71
+
72
+ -- Local file header
73
+ local lfh = self.local_file_header
74
+ lfh.offset = zh:seek()
75
+ zh:write(number_to_bytestring(0x04034b50, 4)) -- signature
76
+ zh:write(number_to_bytestring(20, 2)) -- version needed to extract: 2.0
77
+ zh:write(number_to_bytestring(0, 2)) -- general purpose bit flag
78
+ zh:write(number_to_bytestring(8, 2)) -- compression method: deflate
79
+ zh:write(number_to_bytestring(lfh.last_mod_file_time, 2))
80
+ zh:write(number_to_bytestring(lfh.last_mod_file_date, 2))
81
+ zh:write(number_to_bytestring(lfh.crc32, 4))
82
+ zh:write(number_to_bytestring(lfh.compressed_size, 4))
83
+ zh:write(number_to_bytestring(lfh.uncompressed_size, 4))
84
+ zh:write(number_to_bytestring(lfh.file_name_length, 2))
85
+ zh:write(number_to_bytestring(lfh.extra_field_length, 2))
86
+ zh:write(lfh.file_name)
87
+
88
+ -- File data
89
+ for _, cbuf in ipairs(self.data) do
90
+ zh:write(cbuf)
91
+ end
92
+
93
+ -- Data descriptor
94
+ zh:write(number_to_bytestring(lfh.crc32, 4))
95
+ zh:write(number_to_bytestring(lfh.compressed_size, 4))
96
+ zh:write(number_to_bytestring(lfh.uncompressed_size, 4))
97
+
98
+ table.insert(self.files, lfh)
99
+ self.in_open_file = false
100
+
101
+ return true
102
+ end
103
+
104
+ -- @return boolean or (boolean, string): true on success,
105
+ -- false and an error message on failure.
106
+ local function zipwriter_add(self, file)
107
+ local fin
108
+ local ok, err = self:open_new_file_in_zip(file)
109
+ if not ok then
110
+ err = "error in opening "..file.." in zipfile"
111
+ else
112
+ fin = io.open(fs.absolute_name(file), "rb")
113
+ if not fin then
114
+ ok = false
115
+ err = "error opening "..file.." for reading"
116
+ end
117
+ end
118
+ if ok then
119
+ local buf = fin:read("*a")
120
+ if not buf then
121
+ err = "error reading "..file
122
+ ok = false
123
+ else
124
+ ok = self:write_file_in_zip(buf)
125
+ if not ok then
126
+ err = "error in writing "..file.." in the zipfile"
127
+ end
128
+ end
129
+ end
130
+ if fin then
131
+ fin:close()
132
+ end
133
+ if ok then
134
+ ok = self:close_file_in_zip()
135
+ if not ok then
136
+ err = "error in writing "..file.." in the zipfile"
137
+ end
138
+ end
139
+ return ok == true, err
140
+ end
141
+
142
+ --- Complete the writing of the zipfile.
143
+ -- @param self handle of the zipfile being written.
144
+ -- @return true if succeeded, nil in case of failure.
145
+ local function zipwriter_close(self)
146
+ local zh = self.ziphandle
147
+
148
+ local central_directory_offset = zh:seek()
149
+
150
+ local size_of_central_directory = 0
151
+ -- Central directory structure
152
+ for _, lfh in ipairs(self.files) do
153
+ zh:write(number_to_bytestring(0x02014b50, 4)) -- signature
154
+ zh:write(number_to_bytestring(3, 2)) -- version made by: UNIX
155
+ zh:write(number_to_bytestring(20, 2)) -- version needed to extract: 2.0
156
+ zh:write(number_to_bytestring(0, 2)) -- general purpose bit flag
157
+ zh:write(number_to_bytestring(8, 2)) -- compression method: deflate
158
+ zh:write(number_to_bytestring(lfh.last_mod_file_time, 2))
159
+ zh:write(number_to_bytestring(lfh.last_mod_file_date, 2))
160
+ zh:write(number_to_bytestring(lfh.crc32, 4))
161
+ zh:write(number_to_bytestring(lfh.compressed_size, 4))
162
+ zh:write(number_to_bytestring(lfh.uncompressed_size, 4))
163
+ zh:write(number_to_bytestring(lfh.file_name_length, 2))
164
+ zh:write(number_to_bytestring(lfh.extra_field_length, 2))
165
+ zh:write(number_to_bytestring(0, 2)) -- file comment length
166
+ zh:write(number_to_bytestring(0, 2)) -- disk number start
167
+ zh:write(number_to_bytestring(0, 2)) -- internal file attributes
168
+ zh:write(number_to_bytestring(lfh.external_attr, 4)) -- external file attributes
169
+ zh:write(number_to_bytestring(lfh.offset, 4)) -- relative offset of local header
170
+ zh:write(lfh.file_name)
171
+ size_of_central_directory = size_of_central_directory + 46 + lfh.file_name_length
172
+ end
173
+
174
+ -- End of central directory record
175
+ zh:write(number_to_bytestring(0x06054b50, 4)) -- signature
176
+ zh:write(number_to_bytestring(0, 2)) -- number of this disk
177
+ zh:write(number_to_bytestring(0, 2)) -- number of disk with start of central directory
178
+ zh:write(number_to_bytestring(#self.files, 2)) -- total number of entries in the central dir on this disk
179
+ zh:write(number_to_bytestring(#self.files, 2)) -- total number of entries in the central dir
180
+ zh:write(number_to_bytestring(size_of_central_directory, 4))
181
+ zh:write(number_to_bytestring(central_directory_offset, 4))
182
+ zh:write(number_to_bytestring(0, 2)) -- zip file comment length
183
+ zh:close()
184
+
185
+ return true
186
+ end
187
+
188
+ --- Return a zip handle open for writing.
189
+ -- @param name filename of the zipfile to be created.
190
+ -- @return a zip handle, or nil in case of error.
191
+ function new_zipwriter(name)
192
+
193
+ local zw = {}
194
+
195
+ zw.ziphandle = io.open(fs.absolute_name(name), "wb")
196
+ if not zw.ziphandle then
197
+ return nil
198
+ end
199
+ zw.files = {}
200
+ zw.in_open_file = false
201
+
202
+ zw.add = zipwriter_add
203
+ zw.close = zipwriter_close
204
+ zw.open_new_file_in_zip = zipwriter_open_new_file_in_zip
205
+ zw.write_file_in_zip = zipwriter_write_file_in_zip
206
+ zw.close_file_in_zip = zipwriter_close_file_in_zip
207
+
208
+ return zw
209
+ end
210
+
211
+ --- Compress files in a .zip archive.
212
+ -- @param zipfile string: pathname of .zip archive to be created.
213
+ -- @param ... Filenames to be stored in the archive are given as
214
+ -- additional arguments.
215
+ -- @return boolean or (boolean, string): true on success,
216
+ -- false and an error message on failure.
217
+ function zip(zipfile, ...)
218
+ local zw = new_zipwriter(zipfile)
219
+ if not zw then
220
+ return nil, "error opening "..zipfile
221
+ end
222
+
223
+ local ok, err
224
+ for _, file in pairs({...}) do
225
+ if fs.is_dir(file) then
226
+ for _, entry in pairs(fs.find(file)) do
227
+ local fullname = dir.path(file, entry)
228
+ if fs.is_file(fullname) then
229
+ ok, err = zw:add(fullname)
230
+ if not ok then break end
231
+ end
232
+ end
233
+ else
234
+ ok, err = zw:add(file)
235
+ if not ok then break end
236
+ end
237
+ end
238
+
239
+ local ok = zw:close()
240
+ if not ok then
241
+ return false, "error closing "..zipfile
242
+ end
243
+ return ok, err
244
+ end
245
+
@@ -0,0 +1,267 @@
1
+
2
+ --- Type-checking functions.
3
+ -- Functions and definitions for doing a basic lint check on files
4
+ -- loaded by LuaRocks.
5
+ module("luarocks.type_check", package.seeall)
6
+
7
+ local cfg = require("luarocks.cfg")
8
+
9
+ rockspec_format = "1.0"
10
+
11
+ rockspec_types = {
12
+ rockspec_format = "string",
13
+ MUST_package = "string",
14
+ MUST_version = "[%w.]+-[%d]+",
15
+ description = {
16
+ summary = "string",
17
+ detailed = "string",
18
+ homepage = "string",
19
+ license = "string",
20
+ maintainer = "string"
21
+ },
22
+ dependencies = {
23
+ platforms = {},
24
+ ANY = "string"
25
+ },
26
+ supported_platforms = {
27
+ ANY = "string"
28
+ },
29
+ external_dependencies = {
30
+ platforms = {},
31
+ ANY = {
32
+ program = "string",
33
+ header = "string",
34
+ library = "string"
35
+ }
36
+ },
37
+ MUST_source = {
38
+ platforms = {},
39
+ MUST_url = "string",
40
+ md5 = "string",
41
+ file = "string",
42
+ dir = "string",
43
+ tag = "string",
44
+ branch = "string",
45
+ module = "string",
46
+ cvs_tag = "string",
47
+ cvs_module = "string"
48
+ },
49
+ build = {
50
+ platforms = {},
51
+ type = "string",
52
+ install = {
53
+ lua = {
54
+ MORE = true
55
+ },
56
+ lib = {
57
+ MORE = true
58
+ },
59
+ conf = {
60
+ MORE = true
61
+ },
62
+ bin = {
63
+ MORE = true
64
+ }
65
+ },
66
+ copy_directories = {
67
+ ANY = "string"
68
+ },
69
+ MORE = true
70
+ },
71
+ hooks = {
72
+ platforms = {},
73
+ post_install = "string"
74
+ }
75
+ }
76
+
77
+ function load_extensions()
78
+ rockspec_format = "1.1"
79
+ rockspec_types.deploy = {
80
+ wrap_bin_scripts = true,
81
+ }
82
+ end
83
+
84
+ if cfg.use_extensions then
85
+ load_extensions()
86
+ end
87
+
88
+ rockspec_types.build.platforms.ANY = rockspec_types.build
89
+ rockspec_types.dependencies.platforms.ANY = rockspec_types.dependencies
90
+ rockspec_types.external_dependencies.platforms.ANY = rockspec_types.external_dependencies
91
+ rockspec_types.MUST_source.platforms.ANY = rockspec_types.MUST_source
92
+ rockspec_types.hooks.platforms.ANY = rockspec_types.hooks
93
+
94
+ manifest_types = {
95
+ MUST_repository = {
96
+ -- packages
97
+ ANY = {
98
+ -- versions
99
+ ANY = {
100
+ -- items
101
+ ANY = {
102
+ MUST_arch = "string",
103
+ modules = { ANY = "string" },
104
+ commands = { ANY = "string" },
105
+ dependencies = { ANY = "string" },
106
+ -- TODO: to be extended with more metadata.
107
+ }
108
+ }
109
+ }
110
+ },
111
+ MUST_modules = {
112
+ -- modules
113
+ ANY = {
114
+ -- providers
115
+ ANY = "string"
116
+ }
117
+ },
118
+ MUST_commands = {
119
+ -- modules
120
+ ANY = {
121
+ -- commands
122
+ ANY = "string"
123
+ }
124
+ },
125
+ dependencies = {
126
+ -- each module
127
+ ANY = {
128
+ -- each version
129
+ ANY = {
130
+ -- each dependency
131
+ ANY = {
132
+ name = "string",
133
+ constraints = {
134
+ ANY = {
135
+ no_upgrade = "boolean",
136
+ op = "string",
137
+ version = {
138
+ string = "string",
139
+ ANY = 0,
140
+ }
141
+ }
142
+ }
143
+ }
144
+ }
145
+ }
146
+ }
147
+ }
148
+
149
+ local type_check_table
150
+
151
+ --- Type check an object.
152
+ -- The object is compared against an archetypical value
153
+ -- matching the expected type -- the actual values don't matter,
154
+ -- only their types. Tables are type checked recursively.
155
+ -- @param name any: The object name (for error messages).
156
+ -- @param item any: The object being checked.
157
+ -- @param expected any: The reference object. In case of a table,
158
+ -- its is structured as a type reference table.
159
+ -- @param context string: A string indicating the "context" where the
160
+ -- error occurred (such as the name of the table the item is a part of),
161
+ -- to be used by error messages.
162
+ -- @return boolean or (nil, string): true if type checking
163
+ -- succeeded, or nil and an error message if it failed.
164
+ -- @see type_check_table
165
+ local function type_check_item(name, item, expected, context)
166
+ name = tostring(name)
167
+
168
+ local item_type = type(item)
169
+ local expected_type = type(expected)
170
+ if expected_type == "number" then
171
+ if not tonumber(item) then
172
+ return nil, "Type mismatch on field "..context..name..": expected a number"
173
+ end
174
+ elseif expected_type == "string" then
175
+ if not tostring(item) then
176
+ return nil, "Type mismatch on field "..context..name..": expected a value convertible to string"
177
+ end
178
+ if expected ~= "string" then
179
+ if not item:match("^"..expected.."$") then
180
+ return nil, "Type mismatch on field "..context..name..": invalid value "..item
181
+ end
182
+ end
183
+ elseif expected_type == "table" then
184
+ if item_type ~= expected_type then
185
+ return nil, "Type mismatch on field "..context..name..": expected a table"
186
+ else
187
+ return type_check_table(item, expected, context..name..".")
188
+ end
189
+ elseif item_type ~= expected_type then
190
+ return nil, "Type mismatch on field "..context..name..": expected a "..expected_type
191
+ end
192
+ return true
193
+ end
194
+
195
+ --- Type check the contents of a table.
196
+ -- The table's contents are compared against a reference table,
197
+ -- which contains the recognized fields, with archetypical values
198
+ -- matching the expected types -- the actual values of items in the
199
+ -- reference table don't matter, only their types (ie, for field x
200
+ -- in tbl that is correctly typed, type(tbl.x) == type(types.x)).
201
+ -- If the reference table contains a field called MORE, then
202
+ -- unknown fields in the checked table are accepted.
203
+ -- If it contains a field called ANY, then its type will be
204
+ -- used to check any unknown fields. If a field is prefixed
205
+ -- with MUST_, it is mandatory; its absence from the table is
206
+ -- a type error.
207
+ -- Tables are type checked recursively.
208
+ -- @param tbl table: The table to be type checked.
209
+ -- @param types table: The reference table, containing
210
+ -- values for recognized fields in the checked table.
211
+ -- @param context string: A string indicating the "context" where the
212
+ -- error occurred (such as the name of the table the item is a part of),
213
+ -- to be used by error messages.
214
+ -- @return boolean or (nil, string): true if type checking
215
+ -- succeeded, or nil and an error message if it failed.
216
+ type_check_table = function(tbl, types, context)
217
+ assert(type(tbl) == "table")
218
+ assert(type(types) == "table")
219
+ for k, v in pairs(tbl) do
220
+ local t = types[k] or (type(k) == "string" and types["MUST_"..k]) or types.ANY
221
+ if t then
222
+ local ok, err = type_check_item(k, v, t, context)
223
+ if not ok then return nil, err end
224
+ elseif types.MORE then
225
+ -- Accept unknown field
226
+ else
227
+ if not cfg.accept_unknown_fields then
228
+ return nil, "Unknown field "..k
229
+ end
230
+ end
231
+ end
232
+ for k, v in pairs(types) do
233
+ local mandatory_key = k:match("^MUST_(.+)")
234
+ if mandatory_key then
235
+ if not tbl[mandatory_key] then
236
+ return nil, "Mandatory field "..context..mandatory_key.." is missing."
237
+ end
238
+ end
239
+ end
240
+ return true
241
+ end
242
+
243
+ --- Type check a rockspec table.
244
+ -- Verify the correctness of elements from a
245
+ -- rockspec table, reporting on unknown fields and type
246
+ -- mismatches.
247
+ -- @return boolean or (nil, string): true if type checking
248
+ -- succeeded, or nil and an error message if it failed.
249
+ function type_check_rockspec(rockspec)
250
+ assert(type(rockspec) == "table")
251
+ if rockspec.rockspec_format then
252
+ -- relies on global state
253
+ load_extensions()
254
+ end
255
+ return type_check_table(rockspec, rockspec_types, "")
256
+ end
257
+
258
+ --- Type check a manifest table.
259
+ -- Verify the correctness of elements from a
260
+ -- manifest table, reporting on unknown fields and type
261
+ -- mismatches.
262
+ -- @return boolean or (nil, string): true if type checking
263
+ -- succeeded, or nil and an error message if it failed.
264
+ function type_check_manifest(manifest)
265
+ assert(type(manifest) == "table")
266
+ return type_check_table(manifest, manifest_types, "")
267
+ end