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,6 @@
1
+ --- Retained for compatibility reasons only. Use luarocks.loader instead.
2
+ local require, pairs = require, pairs
3
+ module("luarocks.require")
4
+ for k,v in pairs(require("luarocks.loader")) do
5
+ _M[k] = v
6
+ end
@@ -0,0 +1,399 @@
1
+
2
+ --- Module implementing the LuaRocks "search" command.
3
+ -- Queries LuaRocks servers.
4
+ module("luarocks.search", package.seeall)
5
+
6
+ local dir = require("luarocks.dir")
7
+ local path = require("luarocks.path")
8
+ local manif = require("luarocks.manif")
9
+ local deps = require("luarocks.deps")
10
+ local cfg = require("luarocks.cfg")
11
+ local util = require("luarocks.util")
12
+
13
+ help_summary = "Query the LuaRocks servers."
14
+ help_arguments = "[--source] [--binary] { <name> [<version>] | --all }"
15
+ help = [[
16
+ --source Return only rockspecs and source rocks,
17
+ to be used with the "build" command.
18
+ --binary Return only pure Lua and binary rocks (rocks that can be used
19
+ with the "install" command without requiring a C toolchain).
20
+ --all List all contents of the server that are suitable to
21
+ this platform, do not filter by name.
22
+ ]]
23
+
24
+ --- Convert the arch field of a query table to table format.
25
+ -- @param query table: A query table.
26
+ local function query_arch_as_table(query)
27
+ local format = type(query.arch)
28
+ if format == "table" then
29
+ return
30
+ elseif format == "nil" then
31
+ local accept = {}
32
+ accept["src"] = true
33
+ accept["all"] = true
34
+ accept["rockspec"] = true
35
+ accept["installed"] = true
36
+ accept[cfg.arch] = true
37
+ query.arch = accept
38
+ elseif format == "string" then
39
+ local accept = {}
40
+ for a in query.arch:gmatch("[%w_-]+") do
41
+ accept[a] = true
42
+ end
43
+ query.arch = accept
44
+ end
45
+ end
46
+
47
+ --- Store a search result (a rock or rockspec) in the results table.
48
+ -- @param results table: The results table, where keys are package names and
49
+ -- versions are tables matching version strings to an array of servers.
50
+ -- @param name string: Package name.
51
+ -- @param version string: Package version.
52
+ -- @param arch string: Architecture of rock ("all", "src" or platform
53
+ -- identifier), "rockspec" or "installed"
54
+ -- @param repo string: Pathname of a local repository of URL of
55
+ -- rocks server.
56
+ local function store_result(results, name, version, arch, repo)
57
+ assert(type(results) == "table")
58
+ assert(type(name) == "string")
59
+ assert(type(version) == "string")
60
+ assert(type(arch) == "string")
61
+ assert(type(repo) == "string")
62
+
63
+ if not results[name] then results[name] = {} end
64
+ if not results[name][version] then results[name][version] = {} end
65
+ table.insert(results[name][version], {
66
+ arch = arch,
67
+ repo = repo
68
+ })
69
+ end
70
+
71
+ --- Test the name field of a query.
72
+ -- If query has a boolean field exact_name set to false,
73
+ -- then substring match is performed; otherwise, exact string
74
+ -- comparison is done.
75
+ -- @param query table: A query in dependency table format.
76
+ -- @param name string: A package name.
77
+ -- @return boolean: True if names match, false otherwise.
78
+ local function match_name(query, name)
79
+ assert(type(query) == "table")
80
+ assert(type(name) == "string")
81
+ if query.exact_name == false then
82
+ return name:find(query.name, 0, true) and true or false
83
+ else
84
+ return name == query.name
85
+ end
86
+ end
87
+
88
+ --- Store a match in a results table if version matches query.
89
+ -- Name, version, arch and repository path are stored in a given
90
+ -- table, optionally checking if version and arch (if given) match
91
+ -- a query.
92
+ -- @param results table: The results table, where keys are package names and
93
+ -- versions are tables matching version strings to an array of servers.
94
+ -- @param repo string: URL or pathname of the repository.
95
+ -- @param name string: The name of the package being tested.
96
+ -- @param version string: The version of the package being tested.
97
+ -- @param arch string: The arch of the package being tested.
98
+ -- @param query table: A table describing the query in dependency
99
+ -- format (for example, {name = "filesystem", exact_name = false,
100
+ -- constraints = {op = "~>", version = {1,0}}}, arch = "rockspec").
101
+ -- If the arch field is omitted, the local architecture (cfg.arch)
102
+ -- is used. The special value "any" is also recognized, returning all
103
+ -- matches regardless of architecture.
104
+ local function store_if_match(results, repo, name, version, arch, query)
105
+ if match_name(query, name) then
106
+ if query.arch[arch] or query.arch["any"] then
107
+ if deps.match_constraints(deps.parse_version(version), query.constraints) then
108
+ store_result(results, name, version, arch, repo)
109
+ end
110
+ end
111
+ end
112
+ end
113
+
114
+ --- Perform search on a local repository.
115
+ -- @param repo string: The pathname of the local repository.
116
+ -- @param query table: A table describing the query in dependency
117
+ -- format (for example, {name = "filesystem", exact_name = false,
118
+ -- constraints = {op = "~>", version = {1,0}}}, arch = "rockspec").
119
+ -- If the arch field is omitted, the local architecture (cfg.arch)
120
+ -- is used. The special value "any" is also recognized, returning all
121
+ -- matches regardless of architecture.
122
+ -- @param results table or nil: If given, this table will store the
123
+ -- results; if not given, a new table will be created.
124
+ -- @param table: The results table, where keys are package names and
125
+ -- versions are tables matching version strings to an array of servers.
126
+ -- If a table was given in the "results" parameter, that is the result value.
127
+ function disk_search(repo, query, results)
128
+ assert(type(repo) == "string")
129
+ assert(type(query) == "table")
130
+ assert(type(results) == "table" or not results)
131
+
132
+ local fs = require("luarocks.fs")
133
+
134
+ if not results then
135
+ results = {}
136
+ end
137
+ query_arch_as_table(query)
138
+
139
+ for _, name in pairs(fs.list_dir(repo)) do
140
+ local pathname = dir.path(repo, name)
141
+ local rname, rversion, rarch = path.parse_name(name)
142
+ if fs.is_dir(pathname) then
143
+ for _, version in pairs(fs.list_dir(pathname)) do
144
+ if version:match("-%d+$") then
145
+ store_if_match(results, repo, name, version, "installed", query)
146
+ end
147
+ end
148
+ elseif rname then
149
+ store_if_match(results, repo, rname, rversion, rarch, query)
150
+ end
151
+ end
152
+ return results
153
+ end
154
+
155
+ --- Perform search on a rocks server.
156
+ -- @param results table: The results table, where keys are package names and
157
+ -- versions are tables matching version strings to an array of servers.
158
+ -- @param repo string: The URL of the rocks server.
159
+ -- @param query table: A table describing the query in dependency
160
+ -- format (for example, {name = "filesystem", exact_name = false,
161
+ -- constraints = {op = "~>", version = {1,0}}}, arch = "rockspec").
162
+ -- If the arch field is omitted, the local architecture (cfg.arch)
163
+ -- is used. The special value "any" is also recognized, returning all
164
+ -- matches regardless of architecture.
165
+ -- @return true or, in case of errors, nil and an error message.
166
+ function manifest_search(results, repo, query)
167
+ assert(type(results) == "table")
168
+ assert(type(repo) == "string")
169
+ assert(type(query) == "table")
170
+
171
+ query_arch_as_table(query)
172
+ local manifest, err = manif.load_manifest(repo)
173
+ if not manifest then
174
+ return nil, "Failed loading manifest: "..err
175
+ end
176
+ for name, versions in pairs(manifest.repository) do
177
+ for version, items in pairs(versions) do
178
+ for _, item in ipairs(items) do
179
+ store_if_match(results, repo, name, version, item.arch, query)
180
+ end
181
+ end
182
+ end
183
+ return true
184
+ end
185
+
186
+ --- Search on all configured rocks servers.
187
+ -- @param query table: A dependency query.
188
+ -- @return table or (nil, string): A table where keys are package names
189
+ -- and values are tables matching version strings to an array of
190
+ -- rocks servers; if no results are found, an empty table is returned.
191
+ -- In case of errors, nil and and error message are returned.
192
+ function search_repos(query)
193
+ assert(type(query) == "table")
194
+
195
+ local results = {}
196
+ for _, repo in ipairs(cfg.rocks_servers) do
197
+ local protocol, pathname = dir.split_url(repo)
198
+ if protocol == "file" then
199
+ repo = pathname
200
+ end
201
+ local ok, err = manifest_search(results, repo, query)
202
+ if not ok then
203
+ util.warning("Failed searching manifest: "..err)
204
+ end
205
+ end
206
+ return results
207
+ end
208
+
209
+ --- Prepare a query in dependency table format.
210
+ -- @param name string: The query name.
211
+ -- @param version string or nil:
212
+ -- @return table: A query in table format
213
+ function make_query(name, version)
214
+ assert(type(name) == "string")
215
+ assert(type(version) == "string" or not version)
216
+
217
+ local query = {
218
+ name = name,
219
+ constraints = {}
220
+ }
221
+ if version then
222
+ table.insert(query.constraints, { op = "==", version = deps.parse_version(version)})
223
+ end
224
+ return query
225
+ end
226
+
227
+ --- Get the URL for the latest in a set of versions.
228
+ -- @param name string: The package name to be used in the URL.
229
+ -- @param versions table: An array of version informations, as stored
230
+ -- in search results tables.
231
+ -- @return string or nil: the URL for the latest version if one could
232
+ -- be picked, or nil.
233
+ local function pick_latest_version(name, versions)
234
+ assert(type(name) == "string")
235
+ assert(type(versions) == "table")
236
+
237
+ local vtables = {}
238
+ for v, _ in pairs(versions) do
239
+ table.insert(vtables, deps.parse_version(v))
240
+ end
241
+ table.sort(vtables)
242
+ local version = vtables[#vtables].string
243
+ local items = versions[version]
244
+ if items then
245
+ local pick = 1
246
+ for i, item in ipairs(items) do
247
+ if (item.arch == 'src' and items[pick].arch == 'rockspec')
248
+ or (item.arch ~= 'src' and item.arch ~= 'rockspec') then
249
+ pick = i
250
+ end
251
+ end
252
+ return path.make_url(items[pick].repo, name, version, items[pick].arch)
253
+ end
254
+ return nil
255
+ end
256
+
257
+ --- Attempt to get a single URL for a given search.
258
+ -- @param query table: A dependency query.
259
+ -- @return string or table or (nil, string): URL for matching rock if
260
+ -- a single one was found, a table of candidates if it could not narrow to
261
+ -- a single result, or nil followed by an error message.
262
+ function find_suitable_rock(query)
263
+ assert(type(query) == "table")
264
+
265
+ local results, err = search_repos(query)
266
+ if not results then
267
+ return nil, err
268
+ end
269
+ local first = next(results)
270
+ if not first then
271
+ return nil, "No results matching query were found."
272
+ elseif not next(results, first) then
273
+ return pick_latest_version(query.name, results[first])
274
+ else
275
+ return results
276
+ end
277
+ end
278
+
279
+ --- Print a list of rocks/rockspecs on standard output.
280
+ -- @param results table: A table where keys are package names and versions
281
+ -- are tables matching version strings to an array of rocks servers.
282
+ -- @param show_repo boolean or nil: Whether to show repository
283
+ -- @param long boolean or nil: Whether to show module files
284
+ -- information or not. Default is true.
285
+ function print_results(results, show_repo, long)
286
+ assert(type(results) == "table")
287
+ assert(type(show_repo) == "boolean" or not show_repo)
288
+ -- Force display of repo location for the time being
289
+ show_repo = true -- show_repo == nil and true or show_repo
290
+
291
+ for package, versions in util.sortedpairs(results) do
292
+ util.printout(package)
293
+ for version, repos in util.sortedpairs(versions, deps.compare_versions) do
294
+ if show_repo then
295
+ for _, repo in ipairs(repos) do
296
+ util.printout(" "..version.." ("..repo.arch..") - "..repo.repo)
297
+ end
298
+ else
299
+ util.printout(" "..version)
300
+ end
301
+ end
302
+ util.printout()
303
+ end
304
+ end
305
+
306
+ --- Splits a list of search results into two lists, one for "source" results
307
+ -- to be used with the "build" command, and one for "binary" results to be
308
+ -- used with the "install" command.
309
+ -- @param results table: A search results table.
310
+ -- @return (table, table): Two tables, one for source and one for binary
311
+ -- results.
312
+ local function split_source_and_binary_results(results)
313
+ local sources, binaries = {}, {}
314
+ for name, versions in pairs(results) do
315
+ for version, repos in pairs(versions) do
316
+ for _, repo in ipairs(repos) do
317
+ local where = sources
318
+ if repo.arch == "all" or repo.arch == cfg.arch then
319
+ where = binaries
320
+ end
321
+ store_result(where, name, version, repo.arch, repo.repo)
322
+ end
323
+ end
324
+ end
325
+ return sources, binaries
326
+ end
327
+
328
+ --- Given a name and optionally a version, try to find in the rocks
329
+ -- servers a single .src.rock or .rockspec file that satisfies
330
+ -- the request, and run the given function on it; or display to the
331
+ -- user possibilities if it couldn't narrow down a single match.
332
+ -- @param action function: A function that takes a .src.rock or
333
+ -- .rockspec URL as a parameter.
334
+ -- @param name string: A rock name
335
+ -- @param version string or nil: A version number may also be given.
336
+ -- @return The result of the action function, or nil and an error message.
337
+ function act_on_src_or_rockspec(action, name, version, ...)
338
+ assert(type(action) == "function")
339
+ assert(type(name) == "string")
340
+ assert(type(version) == "string" or not version)
341
+
342
+ local query = make_query(name, version)
343
+ query.arch = "src|rockspec"
344
+ local results, err = find_suitable_rock(query)
345
+ if type(results) == "string" then
346
+ return action(results, ...)
347
+ elseif type(results) == "table" and next(results) then
348
+ util.printout("Multiple search results were returned.")
349
+ util.printout()
350
+ util.printout("Search results:")
351
+ util.printout("---------------")
352
+ print_results(results)
353
+ return nil, "Please narrow your query."
354
+ else
355
+ return nil, "Could not find a result named "..name..(version and " "..version or "").."."
356
+ end
357
+ end
358
+
359
+ --- Driver function for "search" command.
360
+ -- @param name string: A substring of a rock name to search.
361
+ -- @param version string or nil: a version may also be passed.
362
+ -- @return boolean or (nil, string): True if build was successful; nil and an
363
+ -- error message otherwise.
364
+ function run(...)
365
+ local flags, name, version = util.parse_flags(...)
366
+
367
+ if flags["all"] then
368
+ name, version = "", nil
369
+ end
370
+
371
+ if type(name) ~= "string" and not flags["all"] then
372
+ return nil, "Enter name and version or use --all; see help."
373
+ end
374
+
375
+ local query = make_query(name:lower(), version)
376
+ query.exact_name = false
377
+ local results, err = search_repos(query)
378
+ if not results then
379
+ return nil, err
380
+ end
381
+ util.printout()
382
+ util.printout("Search results:")
383
+ util.printout("===============")
384
+ util.printout()
385
+ local sources, binaries = split_source_and_binary_results(results)
386
+ if next(sources) and not flags["binary"] then
387
+ util.printout("Rockspecs and source rocks:")
388
+ util.printout("---------------------------")
389
+ util.printout()
390
+ print_results(sources, true)
391
+ end
392
+ if next(binaries) and not flags["source"] then
393
+ util.printout("Binary and pure-Lua rocks:")
394
+ util.printout("--------------------------")
395
+ util.printout()
396
+ print_results(binaries, true)
397
+ end
398
+ return true
399
+ end
@@ -0,0 +1,138 @@
1
+
2
+ --- Module implementing the LuaRocks "show" command.
3
+ -- Shows information about an installed rock.
4
+ module("luarocks.show", package.seeall)
5
+
6
+ local search = require("luarocks.search")
7
+ local cfg = require("luarocks.cfg")
8
+ local util = require("luarocks.util")
9
+ local path = require("luarocks.path")
10
+ local dir = require("luarocks.dir")
11
+ local deps = require("luarocks.deps")
12
+ local fetch = require("luarocks.fetch")
13
+ local manif = require("luarocks.manif")
14
+ help_summary = "Shows information about an installed rock."
15
+
16
+ help = [[
17
+ <argument> is an existing package name.
18
+ Without any flags, show all module information.
19
+ With these flags, return only the desired information:
20
+
21
+ --home home page of project
22
+ --modules all modules provided by this package as used by require()
23
+ --deps packages this package depends on
24
+ --rockspec the full path of the rockspec file
25
+ --mversion the package version
26
+ --tree local tree where rock is installed
27
+ --rock-dir data directory of the installed rock
28
+ ]]
29
+
30
+ local function keys_as_string(t, sep)
31
+ return table.concat(util.keys(t), sep or " ")
32
+ end
33
+
34
+ local function word_wrap(line)
35
+ local width = tonumber(os.getenv("COLUMNS")) or 80
36
+ if width > 80 then width = 80 end
37
+ if #line > width then
38
+ local brk = width
39
+ while brk > 0 and line:sub(brk, brk) ~= " " do
40
+ brk = brk - 1
41
+ end
42
+ if brk > 0 then
43
+ return line:sub(1, brk-1) .. "\n" .. word_wrap(line:sub(brk+1))
44
+ end
45
+ end
46
+ return line
47
+ end
48
+
49
+ local function format_text(text)
50
+ text = text:gsub("^%s*",""):gsub("%s$", ""):gsub("\n[ \t]+","\n"):gsub("([^\n])\n([^\n])","%1 %2")
51
+ local paragraphs = util.split_string(text, "\n\n")
52
+ for n, line in ipairs(paragraphs) do
53
+ paragraphs[n] = word_wrap(line)
54
+ end
55
+ return (table.concat(paragraphs, "\n\n"):gsub("%s$", ""))
56
+ end
57
+
58
+ --- Driver function for "show" command.
59
+ -- @param name or nil: an existing package name.
60
+ -- @param version string or nil: a version may also be passed.
61
+ -- @return boolean: True if succeeded, nil on errors.
62
+ function run(...)
63
+ local flags, name, version = util.parse_flags(...)
64
+ if not name then
65
+ return nil, "Argument missing, see help."
66
+ end
67
+ local results = {}
68
+ local query = search.make_query(name, version)
69
+ query.exact_name = true
70
+ local tree_map = {}
71
+ for _, tree in ipairs(cfg.rocks_trees) do
72
+ local rocks_dir = path.rocks_dir(tree)
73
+ tree_map[rocks_dir] = tree
74
+ search.manifest_search(results, rocks_dir, query)
75
+ end
76
+
77
+ if not next(results) then --
78
+ return nil,"cannot find package "..name.."\nUse 'list' to find installed rocks"
79
+ end
80
+
81
+ local version,repo_url
82
+ local package, versions = util.sortedpairs(results)()
83
+ --question: what do we do about multiple versions? This should
84
+ --give us the latest version on the last repo (which is usually the global one)
85
+ for vs, repos in util.sortedpairs(versions, deps.compare_versions) do
86
+ if not version then version = vs end
87
+ for _, rp in ipairs(repos) do repo_url = rp.repo end
88
+ end
89
+
90
+
91
+ local repo = tree_map[repo_url]
92
+ local directory = path.install_dir(name,version,repo)
93
+ local rockspec_file = path.rockspec_file(name, version, repo)
94
+ local rockspec, err = fetch.load_local_rockspec(rockspec_file)
95
+ if not rockspec then return nil,err end
96
+
97
+ local descript = rockspec.description or {}
98
+ local manifest, err = manif.load_manifest(repo_url)
99
+ if not manifest then return nil,err end
100
+ local minfo = manifest.repository[name][version][1]
101
+
102
+ if flags["tree"] then util.printout(repo)
103
+ elseif flags["rock-dir"] then util.printout(directory)
104
+ elseif flags["home"] then util.printout(descript.homepage)
105
+ elseif flags["modules"] then util.printout(keys_as_string(minfo.modules))
106
+ elseif flags["deps"] then util.printout(keys_as_string(minfo.dependencies))
107
+ elseif flags["rockspec"] then util.printout(rockspec_file)
108
+ elseif flags["mversion"] then util.printout(version)
109
+ else
110
+ util.printout()
111
+ util.printout(rockspec.package.." "..rockspec.version.." - "..(descript.summary or ""))
112
+ util.printout()
113
+ if descript.detailed then
114
+ util.printout(format_text(descript.detailed))
115
+ util.printout()
116
+ end
117
+ if descript.license then
118
+ util.printout("License: ", descript.license)
119
+ end
120
+ if descript.homepage then
121
+ util.printout("Homepage: ", descript.homepage)
122
+ end
123
+ util.printout("Installed in: ", repo)
124
+ if next(minfo.modules) then
125
+ util.printout()
126
+ util.printout("Modules:")
127
+ util.printout("\t"..keys_as_string(minfo.modules, "\n\t"))
128
+ end
129
+ if next(minfo.dependencies) then
130
+ util.printout()
131
+ util.printout("Depends on:")
132
+ util.printout("\t"..keys_as_string(minfo.dependencies, "\n\t"))
133
+ end
134
+ util.printout()
135
+ end
136
+ return true
137
+ end
138
+