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,69 @@
1
+
2
+ --- Generic utilities for handling pathnames.
3
+ module("luarocks.dir", package.seeall)
4
+
5
+ separator = "/"
6
+
7
+ --- Strip the path off a path+filename.
8
+ -- @param pathname string: A path+name, such as "/a/b/c"
9
+ -- or "\a\b\c".
10
+ -- @return string: The filename without its path, such as "c".
11
+ function base_name(pathname)
12
+ assert(type(pathname) == "string")
13
+
14
+ local base = pathname:gsub("[/\\]*$", ""):match(".*[/\\]([^/\\]*)")
15
+ return base or pathname
16
+ end
17
+
18
+ --- Strip the name off a path+filename.
19
+ -- @param pathname string: A path+name, such as "/a/b/c".
20
+ -- @return string: The filename without its path, such as "/a/b/".
21
+ -- For entries such as "/a/b/", "/a/" is returned. If there are
22
+ -- no directory separators in input, "" is returned.
23
+ function dir_name(pathname)
24
+ assert(type(pathname) == "string")
25
+
26
+ return (pathname:gsub("/*$", ""):match("(.*/)[^/]*")) or ""
27
+ end
28
+
29
+ function strip_base_dir(pathname)
30
+ return pathname:gsub("^[^/]*/", "")
31
+ end
32
+
33
+ --- Describe a path in a cross-platform way.
34
+ -- Use this function to avoid platform-specific directory
35
+ -- separators in other modules. If the first item contains a
36
+ -- protocol descriptor (e.g. "http:"), paths are always constituted
37
+ -- with forward slashes.
38
+ -- @param ... strings representing directories
39
+ -- @return string: a string with a platform-specific representation
40
+ -- of the path.
41
+ function path(...)
42
+ local items = {...}
43
+ local i = 1
44
+ while items[i] do
45
+ items[i] = items[i]:gsub("/*$", "")
46
+ if items[i] == "" then
47
+ table.remove(items, i)
48
+ else
49
+ i = i + 1
50
+ end
51
+ end
52
+ return table.concat(items, "/")
53
+ end
54
+
55
+ --- Split protocol and path from an URL or local pathname.
56
+ -- URLs should be in the "protocol://path" format.
57
+ -- For local pathnames, "file" is returned as the protocol.
58
+ -- @param url string: an URL or a local pathname.
59
+ -- @return string, string: the protocol, and the pathname without the protocol.
60
+ function split_url(url)
61
+ assert(type(url) == "string")
62
+
63
+ local protocol, pathname = url:match("^([^:]*)://(.*)")
64
+ if not protocol then
65
+ protocol = "file"
66
+ pathname = url
67
+ end
68
+ return protocol, pathname
69
+ end
@@ -0,0 +1,90 @@
1
+
2
+ --- Module implementing the luarocks "download" command.
3
+ -- Download a rock from the repository.
4
+ module("luarocks.download", package.seeall)
5
+
6
+ local util = require("luarocks.util")
7
+ local path = require("luarocks.path")
8
+ local fetch = require("luarocks.fetch")
9
+ local search = require("luarocks.search")
10
+
11
+ help_summary = "Download a specific rock file from a rocks server."
12
+ help_arguments = "[--all] [--arch=<arch> | --source | --rockspec] [<name> [<version>]]"
13
+
14
+ help = [[
15
+ --all Download all files if there are multiple matches.
16
+ --source Download .src.rock if available.
17
+ --rockspec Download .rockspec if available.
18
+ --arch=<arch> Download rock for a specific architecture.
19
+ ]]
20
+
21
+ function download(arch, name, version, all)
22
+ local results, err
23
+ local query = search.make_query(name, version)
24
+ if arch then query.arch = arch end
25
+ if all then
26
+ if name == "" then query.exact_name = false end
27
+ results, err = search.search_repos(query)
28
+ else
29
+ results, err = search.find_suitable_rock(query)
30
+ end
31
+ if type(results) == "string" then
32
+ local file = fetch.fetch_url(results)
33
+ return file
34
+ elseif type(results) == "table" and next(results) then
35
+ if all then
36
+ local all_ok = true
37
+ local any_err = ""
38
+ for name, result in pairs(results) do
39
+ for version, versions in pairs(result) do
40
+ for _,items in pairs(versions) do
41
+ local filename = path.make_url(items.repo, name, version, items.arch)
42
+ local ok, err = fetch.fetch_url(filename)
43
+ if not ok then
44
+ all_ok = false
45
+ any_err = any_err .. "\n" .. err
46
+ end
47
+ end
48
+ end
49
+ end
50
+ return all_ok, any_err
51
+ else
52
+ util.printerr("Multiple search results were returned.")
53
+ util.printout()
54
+ util.printout("Search results:")
55
+ util.printout("---------------")
56
+ search.print_results(results)
57
+ return nil, "Please narrow your query or use --all."
58
+ end
59
+ end
60
+ return nil, "Could not find a result named "..name..(version and " "..version or "").."."
61
+ end
62
+
63
+ --- Driver function for the "download" command.
64
+ -- @param name string: a rock name.
65
+ -- @param version string or nil: if the name of a package is given, a
66
+ -- version may also be passed.
67
+ -- @return boolean or (nil, string): true if successful or nil followed
68
+ -- by an error message.
69
+ function run(...)
70
+ local flags, name, version = util.parse_flags(...)
71
+
72
+ assert(type(version) == "string" or not version)
73
+ if type(name) ~= "string" and not flags["all"] then
74
+ return nil, "Argument missing, see help."
75
+ end
76
+ if not name then name, version = "", "" end
77
+
78
+ local arch
79
+
80
+ if flags["source"] then
81
+ arch = "src"
82
+ elseif flags["rockspec"] then
83
+ arch = "rockspec"
84
+ elseif flags["arch"] then
85
+ arch = flags["arch"]
86
+ end
87
+
88
+ local dl, err = download(arch, name, version, flags["all"])
89
+ return dl and true, err
90
+ end
@@ -0,0 +1,321 @@
1
+
2
+ --- Functions related to fetching and loading local and remote files.
3
+ module("luarocks.fetch", package.seeall)
4
+
5
+ local fs = require("luarocks.fs")
6
+ local dir = require("luarocks.dir")
7
+ local type_check = require("luarocks.type_check")
8
+ local path = require("luarocks.path")
9
+ local deps = require("luarocks.deps")
10
+ local persist = require("luarocks.persist")
11
+ local util = require("luarocks.util")
12
+ local cfg = require("luarocks.cfg")
13
+
14
+ --- Fetch a local or remote file.
15
+ -- Make a remote or local URL/pathname local, fetching the file if necessary.
16
+ -- Other "fetch" and "load" functions use this function to obtain files.
17
+ -- If a local pathname is given, it is returned as a result.
18
+ -- @param url string: a local pathname or a remote URL.
19
+ -- @param filename string or nil: this function attempts to detect the
20
+ -- resulting local filename of the remote file as the basename of the URL;
21
+ -- if that is not correct (due to a redirection, for example), the local
22
+ -- filename can be given explicitly as this second argument.
23
+ -- @return string or (nil, string, [string]): the absolute local pathname for the
24
+ -- fetched file, or nil and a message in case of errors, followed by
25
+ -- an optional error code.
26
+ function fetch_url(url, filename)
27
+ assert(type(url) == "string")
28
+ assert(type(filename) == "string" or not filename)
29
+
30
+ local protocol, pathname = dir.split_url(url)
31
+ if protocol == "file" then
32
+ return fs.absolute_name(pathname)
33
+ elseif protocol == "http" or protocol == "ftp" or protocol == "https" then
34
+ local ok, err = fs.download(url, filename)
35
+ if not ok then
36
+ return nil, "Failed downloading "..url..(err and " - "..err or ""), "network"
37
+ end
38
+ return dir.path(fs.current_dir(), filename or dir.base_name(url))
39
+ else
40
+ return nil, "Unsupported protocol "..protocol
41
+ end
42
+ end
43
+
44
+ --- For remote URLs, create a temporary directory and download URL inside it.
45
+ -- This temporary directory will be deleted on program termination.
46
+ -- For local URLs, just return the local pathname and its directory.
47
+ -- @param url string: URL to be downloaded
48
+ -- @param tmpname string: name pattern to use for avoiding conflicts
49
+ -- when creating temporary directory.
50
+ -- @param filename string or nil: local filename of URL to be downloaded,
51
+ -- in case it can't be inferred from the URL.
52
+ -- @return (string, string) or (nil, string, [string]): absolute local pathname of
53
+ -- the fetched file and temporary directory name; or nil and an error message
54
+ -- followed by an optional error code
55
+ function fetch_url_at_temp_dir(url, tmpname, filename)
56
+ assert(type(url) == "string")
57
+ assert(type(tmpname) == "string")
58
+ assert(type(filename) == "string" or not filename)
59
+ filename = filename or dir.base_name(url)
60
+
61
+ local protocol, pathname = dir.split_url(url)
62
+ if protocol == "file" then
63
+ if fs.exists(pathname) then
64
+ return pathname, dir.dir_name(fs.absolute_name(pathname))
65
+ else
66
+ return nil, "File not found: "..pathname
67
+ end
68
+ else
69
+ local temp_dir = fs.make_temp_dir(tmpname)
70
+ if not temp_dir then
71
+ return nil, "Failed creating temporary directory."
72
+ end
73
+ util.schedule_function(fs.delete, temp_dir)
74
+ fs.change_dir(temp_dir)
75
+ local file, err, errcode = fetch_url(url, filename)
76
+ fs.pop_dir()
77
+ if not file then
78
+ return nil, "Error fetching file: "..err, errcode
79
+ end
80
+ return file, temp_dir
81
+ end
82
+ end
83
+
84
+ --- Obtain a rock and unpack it.
85
+ -- If a directory is not given, a temporary directory will be created,
86
+ -- which will be deleted on program termination.
87
+ -- @param rock_file string: URL or filename of the rock.
88
+ -- @param dest string or nil: if given, directory will be used as
89
+ -- a permanent destination.
90
+ -- @return string or (nil, string, [string]): the directory containing the contents
91
+ -- of the unpacked rock.
92
+ function fetch_and_unpack_rock(rock_file, dest)
93
+ assert(type(rock_file) == "string")
94
+ assert(type(dest) == "string" or not dest)
95
+
96
+ local name = dir.base_name(rock_file):match("(.*)%.[^.]*%.rock")
97
+
98
+ local rock_file, err, errcode = fetch_url_at_temp_dir(rock_file,"luarocks-rock-"..name)
99
+ if not rock_file then
100
+ return nil, "Could not fetch rock file: " .. err, errcode
101
+ end
102
+
103
+ rock_file = fs.absolute_name(rock_file)
104
+ local unpack_dir
105
+ if dest then
106
+ unpack_dir = dest
107
+ fs.make_dir(unpack_dir)
108
+ else
109
+ unpack_dir = fs.make_temp_dir(name)
110
+ end
111
+ if not dest then
112
+ util.schedule_function(fs.delete, unpack_dir)
113
+ end
114
+ fs.change_dir(unpack_dir)
115
+ local ok = fs.unzip(rock_file)
116
+ if not ok then
117
+ return nil, "Failed unpacking rock file: " .. rock_file
118
+ end
119
+ fs.pop_dir()
120
+ return unpack_dir
121
+ end
122
+
123
+ --- Back-end function that actually loads the local rockspec.
124
+ -- Performs some validation and postprocessing of the rockspec contents.
125
+ -- @param filename string: The local filename of the rockspec file.
126
+ -- @return table or (nil, string): A table representing the rockspec
127
+ -- or nil followed by an error message.
128
+ function load_local_rockspec(filename)
129
+ assert(type(filename) == "string")
130
+ filename = fs.absolute_name(filename)
131
+ local rockspec, err = persist.load_into_table(filename)
132
+ if not rockspec then
133
+ return nil, "Could not load rockspec file "..filename.." ("..err..")"
134
+ end
135
+
136
+ local ok, err = type_check.type_check_rockspec(rockspec)
137
+ if not ok then
138
+ return nil, filename..": "..err
139
+ end
140
+
141
+ if rockspec.rockspec_format then
142
+ if deps.compare_versions(rockspec.rockspec_format, type_check.rockspec_format) then
143
+ return nil, "Rockspec format "..rockspec.rockspec_format.." is not supported, please upgrade LuaRocks."
144
+ end
145
+ end
146
+
147
+ util.platform_overrides(rockspec.build)
148
+ util.platform_overrides(rockspec.dependencies)
149
+ util.platform_overrides(rockspec.external_dependencies)
150
+ util.platform_overrides(rockspec.source)
151
+ util.platform_overrides(rockspec.hooks)
152
+
153
+ local basename = dir.base_name(filename)
154
+ if basename == "rockspec" then
155
+ rockspec.name = rockspec.package:lower()
156
+ else
157
+ rockspec.name = basename:match("(.*)-[^-]*-[0-9]*")
158
+ if not rockspec.name then
159
+ return nil, "Expected filename in format 'name-version-revision.rockspec'."
160
+ end
161
+ end
162
+
163
+ local protocol, pathname = dir.split_url(rockspec.source.url)
164
+ if protocol == "http" or protocol == "https" or protocol == "ftp" or protocol == "file" then
165
+ rockspec.source.file = rockspec.source.file or dir.base_name(rockspec.source.url)
166
+ end
167
+ rockspec.source.protocol, rockspec.source.pathname = protocol, pathname
168
+
169
+ -- Temporary compatibility
170
+ if rockspec.source.cvs_module then rockspec.source.module = rockspec.source.cvs_module end
171
+ if rockspec.source.cvs_tag then rockspec.source.tag = rockspec.source.cvs_tag end
172
+
173
+ local name_version = rockspec.package:lower() .. "-" .. rockspec.version
174
+ if basename ~= "rockspec" and basename ~= name_version .. ".rockspec" then
175
+ return nil, "Inconsistency between rockspec filename ("..basename..") and its contents ("..name_version..".rockspec)."
176
+ end
177
+
178
+ rockspec.local_filename = filename
179
+ local filebase = rockspec.source.file or rockspec.source.url
180
+ local base = dir.base_name(filebase)
181
+ base = base:gsub("%.[^.]*$", ""):gsub("%.tar$", "")
182
+ rockspec.source.dir = rockspec.source.dir
183
+ or rockspec.source.module
184
+ or ((filebase:match(".lua$") or filebase:match(".c$")) and ".")
185
+ or base
186
+ if rockspec.dependencies then
187
+ for i = 1, #rockspec.dependencies do
188
+ local parsed = deps.parse_dep(rockspec.dependencies[i])
189
+ if not parsed then
190
+ return nil, "Parse error processing dependency '"..rockspec.dependencies[i].."'"
191
+ end
192
+ rockspec.dependencies[i] = parsed
193
+ end
194
+ else
195
+ rockspec.dependencies = {}
196
+ end
197
+ local ok, err = path.configure_paths(rockspec)
198
+ if err then
199
+ return nil, "Error verifying paths: "..err
200
+ end
201
+
202
+ return rockspec
203
+ end
204
+
205
+ --- Load a local or remote rockspec into a table.
206
+ -- This is the entry point for the LuaRocks tools.
207
+ -- Only the LuaRocks runtime loader should use
208
+ -- load_local_rockspec directly.
209
+ -- @param filename string: Local or remote filename of a rockspec.
210
+ -- @param location string or nil: Where to download. If not given,
211
+ -- a temporary dir is created.
212
+ -- @return table or (nil, string, [string]): A table representing the rockspec
213
+ -- or nil followed by an error message and optional error code.
214
+ function load_rockspec(filename, location)
215
+ assert(type(filename) == "string")
216
+
217
+ local name
218
+ local basename = dir.base_name(filename)
219
+ if basename == "rockspec" then
220
+ name = "rockspec"
221
+ else
222
+ name = basename:match("(.*)%.rockspec")
223
+ if not name and not basename == "rockspec" then
224
+ return nil, "Filename '"..filename.."' does not look like a rockspec."
225
+ end
226
+ end
227
+
228
+ local err, errcode
229
+ if location then
230
+ fs.change_dir(location)
231
+ filename, err = fetch_url(filename)
232
+ fs.pop_dir()
233
+ else
234
+ filename, err, errcode = fetch_url_at_temp_dir(filename,"luarocks-rockspec-"..name)
235
+ end
236
+ if not filename then
237
+ return nil, err, errcode
238
+ end
239
+
240
+ return load_local_rockspec(filename)
241
+ end
242
+
243
+ --- Download sources for building a rock using the basic URL downloader.
244
+ -- @param rockspec table: The rockspec table
245
+ -- @param extract boolean: Whether to extract the sources from
246
+ -- the fetched source tarball or not.
247
+ -- @param dest_dir string or nil: If set, will extract to the given directory.
248
+ -- @return (string, string) or (nil, string, [string]): The absolute pathname of
249
+ -- the fetched source tarball and the temporary directory created to
250
+ -- store it; or nil and an error message and optional error code.
251
+ function get_sources(rockspec, extract, dest_dir)
252
+ assert(type(rockspec) == "table")
253
+ assert(type(extract) == "boolean")
254
+ assert(type(dest_dir) == "string" or not dest_dir)
255
+
256
+ local url = rockspec.source.url
257
+ local name = rockspec.name.."-"..rockspec.version
258
+ local filename = rockspec.source.file
259
+ local source_file, store_dir, err, errcode
260
+ if dest_dir then
261
+ fs.change_dir(dest_dir)
262
+ source_file, err, errcode = fetch_url(url, filename)
263
+ fs.pop_dir()
264
+ store_dir = dest_dir
265
+ else
266
+ source_file, store_dir, errcode = fetch_url_at_temp_dir(url, "luarocks-source-"..name, filename)
267
+ end
268
+ if not source_file then
269
+ return nil, err or store_dir, errcode
270
+ end
271
+ if rockspec.source.md5 then
272
+ if not fs.check_md5(source_file, rockspec.source.md5) then
273
+ return nil, "MD5 check for "..filename.." has failed."
274
+ end
275
+ end
276
+ if extract then
277
+ fs.change_dir(store_dir)
278
+ fs.unpack_archive(rockspec.source.file)
279
+ if not fs.exists(rockspec.source.dir) then
280
+ return nil, "Directory "..rockspec.source.dir.." not found inside archive "..rockspec.source.file
281
+ end
282
+ fs.pop_dir()
283
+ end
284
+ return source_file, store_dir
285
+ end
286
+
287
+ --- Download sources for building a rock, calling the appropriate protocol method.
288
+ -- @param rockspec table: The rockspec table
289
+ -- @param extract boolean: When downloading compressed formats, whether to extract
290
+ -- the sources from the fetched archive or not.
291
+ -- @param dest_dir string or nil: If set, will extract to the given directory.
292
+ -- @return (string, string) or (nil, string): The absolute pathname of
293
+ -- the fetched source tarball and the temporary directory created to
294
+ -- store it; or nil and an error message.
295
+ function fetch_sources(rockspec, extract, dest_dir)
296
+ assert(type(rockspec) == "table")
297
+ assert(type(extract) == "boolean")
298
+ assert(type(dest_dir) == "string" or not dest_dir)
299
+
300
+ local protocol = rockspec.source.protocol
301
+ local ok, proto
302
+ if protocol == "http" or protocol == "https" or protocol == "ftp" or protocol == "file" then
303
+ proto = require("luarocks.fetch")
304
+ else
305
+ ok, proto = pcall(require, "luarocks.fetch."..protocol:gsub("[+-]", "_"))
306
+ if not ok then
307
+ return nil, "Unknown protocol "..protocol
308
+ end
309
+ end
310
+
311
+ if cfg.only_sources_from
312
+ and rockspec.source.pathname
313
+ and #rockspec.source.pathname > 0 then
314
+ if #cfg.only_sources_from == 0 then
315
+ return nil, "Can't download "..rockspec.source.url.." -- download from remote servers disabled"
316
+ elseif rockspec.source.pathname:find(cfg.only_sources_from, 1, true) ~= 1 then
317
+ return nil, "Can't download "..rockspec.source.url.." -- only downloading from "..cfg.only_sources_from
318
+ end
319
+ end
320
+ return proto.get_sources(rockspec, extract, dest_dir)
321
+ end