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,108 @@
1
+
2
+ --- Module implementing the luarocks-admin "add" command.
3
+ -- Adds a rock or rockspec to a rocks server.
4
+ module("luarocks.add", package.seeall)
5
+
6
+ local cfg = require("luarocks.cfg")
7
+ local util = require("luarocks.util")
8
+ local fetch = require("luarocks.fetch")
9
+ local dir = require("luarocks.dir")
10
+ local manif = require("luarocks.manif")
11
+ local index = require("luarocks.index")
12
+ local fs = require("luarocks.fs")
13
+ local cache = require("luarocks.cache")
14
+
15
+ help_summary = "Add a rock or rockspec to a rocks server."
16
+ help_arguments = "[--server=<server>] [--no-refresh] {<rockspec>|<rock>...}"
17
+ help = [[
18
+ Arguments are local files, which may be rockspecs or rocks.
19
+ The flag --server indicates which server to use.
20
+ If not given, the default server set in the upload_server variable
21
+ from the configuration file is used instead.
22
+ The flag --no-refresh indicates the local cache should not be refreshed
23
+ prior to generation of the updated manifest.
24
+ ]]
25
+
26
+ local function add_files_to_server(refresh, rockfiles, server, upload_server)
27
+ assert(type(refresh) == "boolean" or not refresh)
28
+ assert(type(rockfiles) == "table")
29
+ assert(type(server) == "string")
30
+ assert(type(upload_server) == "table" or not upload_server)
31
+
32
+ local download_url, login_url = cache.get_server_urls(server, upload_server)
33
+ local at = fs.current_dir()
34
+ local refresh_fn = refresh and cache.refresh_local_cache or cache.split_server_url
35
+
36
+ local local_cache, protocol, server_path, user, password = refresh_fn(server, download_url, cfg.upload_user, cfg.upload_password)
37
+ if not local_cache then
38
+ return nil, protocol
39
+ end
40
+ if protocol == "file" then
41
+ return nil, "Server "..server.." is not recognized, check your configuration."
42
+ end
43
+
44
+ if not login_url then
45
+ login_url = protocol.."://"..server_path
46
+ end
47
+
48
+ fs.change_dir(at)
49
+
50
+ local files = {}
51
+ for i, rockfile in ipairs(rockfiles) do
52
+ if fs.exists(rockfile) then
53
+ util.printout("Copying file "..rockfile.." to "..local_cache.."...")
54
+ local absolute = fs.absolute_name(rockfile)
55
+ fs.copy(absolute, local_cache)
56
+ table.insert(files, dir.base_name(absolute))
57
+ else
58
+ util.printerr("File "..rockfile.." not found")
59
+ end
60
+ end
61
+ if #files == 0 then
62
+ return nil, "No files found"
63
+ end
64
+
65
+ fs.change_dir(local_cache)
66
+
67
+ util.printout("Updating manifest...")
68
+ manif.make_manifest(local_cache)
69
+ util.printout("Updating index.html...")
70
+ index.make_index(local_cache)
71
+
72
+ local login_info = ""
73
+ if user then login_info = " -u "..user end
74
+ if password then login_info = login_info..":"..password end
75
+ if not login_url:match("/$") then
76
+ login_url = login_url .. "/"
77
+ end
78
+
79
+ -- TODO abstract away explicit 'curl' call
80
+
81
+ local cmd
82
+ if protocol == "rsync" then
83
+ local srv, path = server_path:match("([^/]+)(/.+)")
84
+ cmd = cfg.variables.RSYNC.." --exclude=.git -Oavz -e ssh "..local_cache.."/ "..user.."@"..srv..":"..path.."/"
85
+ elseif upload_server and upload_server.sftp then
86
+ local part1, part2 = upload_server.sftp:match("^([^/]*)/(.*)$")
87
+ cmd = cfg.variables.SCP.." manifest index.html "..table.concat(files, " ").." "..user.."@"..part1..":/"..part2
88
+ else
89
+ cmd = cfg.variables.CURL.." "..login_info.." -T '{manifest,index.html,"..table.concat(files, ",").."}' "..login_url
90
+ end
91
+
92
+ util.printout(cmd)
93
+ fs.execute(cmd)
94
+
95
+ return true
96
+ end
97
+
98
+ function run(...)
99
+ local files = { util.parse_flags(...) }
100
+ local flags = table.remove(files, 1)
101
+ if #files < 1 then
102
+ return nil, "Argument missing, see help."
103
+ end
104
+ local server, server_table = cache.get_upload_server(flags["server"])
105
+ if not server then return nil, server_table end
106
+ return add_files_to_server(not flags["no-refresh"], files, server, server_table)
107
+ end
108
+
@@ -0,0 +1,87 @@
1
+
2
+ --- Module implementing the luarocks-admin "remove" command.
3
+ -- Removes a rock or rockspec from a rocks server.
4
+ module("luarocks.admin_remove", package.seeall)
5
+
6
+ local cfg = require("luarocks.cfg")
7
+ local util = require("luarocks.util")
8
+ local fetch = require("luarocks.fetch")
9
+ local dir = require("luarocks.dir")
10
+ local manif = require("luarocks.manif")
11
+ local index = require("luarocks.index")
12
+ local fs = require("luarocks.fs")
13
+ local cache = require("luarocks.cache")
14
+
15
+ help_summary = "Remove a rock or rockspec from a rocks server."
16
+ help_arguments = "[--from=<server>] [--no-refresh] {<rockspec>|<rock>...}"
17
+ help = [[
18
+ Arguments are local files, which may be rockspecs or rocks.
19
+ The flag --from indicates which server to use.
20
+ If not given, the default server set in the upload_server variable
21
+ from the configuration file is used instead.
22
+ The flag --no-refresh indicates the local cache should not be refreshed
23
+ prior to generation of the updated manifest.
24
+ ]]
25
+
26
+ local function remove_files_from_server(refresh, rockfiles, server, upload_server)
27
+ assert(type(refresh) == "boolean" or not refresh)
28
+ assert(type(rockfiles) == "table")
29
+ assert(type(server) == "string")
30
+ assert(type(upload_server) == "table" or not upload_server)
31
+
32
+ local download_url, login_url = cache.get_server_urls(server, upload_server)
33
+ local at = fs.current_dir()
34
+ local refresh_fn = refresh and cache.refresh_local_cache or cache.split_server_url
35
+
36
+ local local_cache, protocol, server_path, user, password = refresh_fn(server, download_url, cfg.upload_user, cfg.upload_password)
37
+ if not local_cache then
38
+ return nil, protocol
39
+ end
40
+ if protocol ~= "rsync" then
41
+ return nil, "This command requires 'rsync', check your configuration."
42
+ end
43
+
44
+ fs.change_dir(at)
45
+
46
+ local nr_files = 0
47
+ for i, rockfile in ipairs(rockfiles) do
48
+ local basename = dir.base_name(rockfile)
49
+ local file = dir.path(local_cache, basename)
50
+ util.printout("Removing file "..file.."...")
51
+ if fs.delete(file) then
52
+ nr_files = nr_files + 1
53
+ else
54
+ util.printerr("Failed removing "..file)
55
+ end
56
+ end
57
+ if nr_files == 0 then
58
+ return nil, "No files removed."
59
+ end
60
+
61
+ fs.change_dir(local_cache)
62
+
63
+ util.printout("Updating manifest...")
64
+ manif.make_manifest(local_cache)
65
+ util.printout("Updating index.html...")
66
+ index.make_index(local_cache)
67
+
68
+ local srv, path = server_path:match("([^/]+)(/.+)")
69
+ local cmd = "rsync -Oavz --delete -e ssh "..local_cache.."/ "..user.."@"..srv..":"..path.."/"
70
+
71
+ util.printout(cmd)
72
+ fs.execute(cmd)
73
+
74
+ return true
75
+ end
76
+
77
+ function run(...)
78
+ local files = { util.parse_flags(...) }
79
+ local flags = table.remove(files, 1)
80
+ if #files < 1 then
81
+ return nil, "Argument missing, see help."
82
+ end
83
+ local server, server_table = cache.get_upload_server(flags["server"])
84
+ if not server then return nil, server_table end
85
+ return remove_files_from_server(not flags["no-refresh"], files, server, server_table)
86
+ end
87
+
@@ -0,0 +1,330 @@
1
+
2
+ --- Module implementing the LuaRocks "build" command.
3
+ -- Builds a rock, compiling its C parts if any.
4
+ module("luarocks.build", package.seeall)
5
+
6
+ local pack = require("luarocks.pack")
7
+ local path = require("luarocks.path")
8
+ local util = require("luarocks.util")
9
+ local rep = require("luarocks.rep")
10
+ local fetch = require("luarocks.fetch")
11
+ local fs = require("luarocks.fs")
12
+ local dir = require("luarocks.dir")
13
+ local deps = require("luarocks.deps")
14
+ local manif = require("luarocks.manif")
15
+ local cfg = require("luarocks.cfg")
16
+
17
+ help_summary = "Build/compile a rock."
18
+ help_arguments = "[--pack-binary-rock] {<rockspec>|<rock>|<name> [<version>]}"
19
+ help = [[
20
+ Build and install a rock, compiling its C parts if any.
21
+ Argument may be a rockspec file, a source rock file
22
+ or the name of a rock to be fetched from a repository.
23
+
24
+ If --pack-binary-rock is passed, the rock is not installed;
25
+ instead, a .rock file with the contents of compilation is produced
26
+ in the current directory.
27
+ ]]
28
+
29
+ --- Install files to a given location.
30
+ -- Takes a table where the array part is a list of filenames to be copied.
31
+ -- In the hash part, other keys, if is_module_path is set, are identifiers
32
+ -- in Lua module format, to indicate which subdirectory the file should be
33
+ -- copied to. For example, install_files({["foo.bar"] = "src/bar.lua"}, "boo")
34
+ -- will copy src/bar.lua to boo/foo.
35
+ -- @param files table or nil: A table containing a list of files to copy in
36
+ -- the format described above. If nil is passed, this function is a no-op.
37
+ -- Directories should be delimited by forward slashes as in internet URLs.
38
+ -- @param location string: The base directory files should be copied to.
39
+ -- @param is_module_path boolean: True if string keys in files should be
40
+ -- interpreted as dotted module paths.
41
+ -- @return boolean or (nil, string): True if succeeded or
42
+ -- nil and an error message.
43
+ local function install_files(files, location, is_module_path)
44
+ assert(type(files) == "table" or not files)
45
+ assert(type(location) == "string")
46
+ if files then
47
+ for k, file in pairs(files) do
48
+ local dest = location
49
+ if type(k) == "string" then
50
+ if is_module_path then
51
+ dest = dir.path(location, path.module_to_path(k))
52
+ fs.make_dir(dest)
53
+ else
54
+ dest = dir.path(location, dir.dir_name(k))
55
+ fs.make_dir(dest)
56
+ dest = dir.path(dest, dir.base_name(k))
57
+ end
58
+ else
59
+ fs.make_dir(dest)
60
+ end
61
+ local ok = fs.copy(dir.path(file), dest)
62
+ if not ok then
63
+ return nil, "Failed copying "..file
64
+ end
65
+ end
66
+ end
67
+ return true
68
+ end
69
+
70
+ --- Write to the current directory the contents of a table,
71
+ -- where each key is a file name and its value is the file content.
72
+ -- @param files table: The table of files to be written.
73
+ local function extract_from_rockspec(files)
74
+ for name, content in pairs(files) do
75
+ local fd = io.open(dir.path(fs.current_dir(), name), "w+")
76
+ fd:write(content)
77
+ fd:close()
78
+ end
79
+ end
80
+
81
+ --- Applies patches inlined in the build.patches section
82
+ -- and extracts files inlined in the build.extra_files section
83
+ -- of a rockspec.
84
+ -- @param rockspec table: A rockspec table.
85
+ -- @return boolean or (nil, string): True if succeeded or
86
+ -- nil and an error message.
87
+ function apply_patches(rockspec)
88
+ assert(type(rockspec) == "table")
89
+
90
+ local build = rockspec.build
91
+ if build.extra_files then
92
+ extract_from_rockspec(build.extra_files)
93
+ end
94
+ if build.patches then
95
+ extract_from_rockspec(build.patches)
96
+ for patch, patchdata in util.sortedpairs(build.patches) do
97
+ util.printout("Applying patch "..patch.."...")
98
+ local ok, err = fs.apply_patch(tostring(patch), patchdata)
99
+ if not ok then
100
+ return nil, "Failed applying patch "..patch
101
+ end
102
+ end
103
+ end
104
+ return true
105
+ end
106
+
107
+ --- Build and install a rock given a rockspec.
108
+ -- @param rockspec_file string: local or remote filename of a rockspec.
109
+ -- @param need_to_fetch boolean: true if sources need to be fetched,
110
+ -- false if the rockspec was obtained from inside a source rock.
111
+ -- @param minimal_mode boolean: true if there's no need to fetch,
112
+ -- unpack or change dir (this is used by "luarocks make"). Implies
113
+ -- need_to_fetch = false.
114
+ -- @param no_deps boolean: true if dependency check needs to be skipped
115
+ -- @return boolean or (nil, string, [string]): True if succeeded or
116
+ -- nil and an error message followed by an error code.
117
+ function build_rockspec(rockspec_file, need_to_fetch, minimal_mode, no_deps)
118
+ assert(type(rockspec_file) == "string")
119
+ assert(type(need_to_fetch) == "boolean")
120
+
121
+ local rockspec, err, errcode = fetch.load_rockspec(rockspec_file)
122
+ if err then
123
+ return nil, err, errcode
124
+ elseif not rockspec.build then
125
+ return nil, "Rockspec error: build table not specified"
126
+ elseif not rockspec.build.type then
127
+ return nil, "Rockspec error: build type not specified"
128
+ end
129
+
130
+ if no_deps then
131
+ util.printerr("Warning: skipping dependency checks.")
132
+ else
133
+ local ok, err, errcode = deps.fulfill_dependencies(rockspec)
134
+ if err then
135
+ return nil, err, errcode
136
+ end
137
+ end
138
+
139
+ ok, err, errcode = deps.check_external_deps(rockspec, "build")
140
+ if err then
141
+ return nil, err, errcode
142
+ end
143
+
144
+ local name, version = rockspec.name, rockspec.version
145
+ if rep.is_installed(name, version) then
146
+ rep.delete_version(name, version)
147
+ end
148
+
149
+ if not minimal_mode then
150
+ local _, source_dir
151
+ if need_to_fetch then
152
+ ok, source_dir, errcode = fetch.fetch_sources(rockspec, true)
153
+ if not ok then
154
+ return nil, source_dir, errcode
155
+ end
156
+ fs.change_dir(source_dir)
157
+ elseif rockspec.source.file then
158
+ local ok, err = fs.unpack_archive(rockspec.source.file)
159
+ if not ok then
160
+ return nil, err
161
+ end
162
+ end
163
+ fs.change_dir(rockspec.source.dir)
164
+ end
165
+
166
+ local dirs = {
167
+ lua = { name = path.lua_dir(name, version), is_module_path = true },
168
+ lib = { name = path.lib_dir(name, version), is_module_path = true },
169
+ conf = { name = path.conf_dir(name, version), is_module_path = false },
170
+ bin = { name = path.bin_dir(name, version), is_module_path = false },
171
+ }
172
+
173
+ for _, d in pairs(dirs) do
174
+ fs.make_dir(d.name)
175
+ end
176
+ local rollback = util.schedule_function(function()
177
+ fs.delete(path.install_dir(name, version))
178
+ fs.remove_dir_if_empty(path.versions_dir(name))
179
+ end)
180
+
181
+ local build = rockspec.build
182
+
183
+ if not minimal_mode then
184
+ ok, err = apply_patches(rockspec)
185
+ if err then
186
+ return nil, err
187
+ end
188
+ end
189
+
190
+ if build.type ~= "none" then
191
+
192
+ -- Temporary compatibility
193
+ if build.type == "module" then
194
+ util.printout("Do not use 'module' as a build type. Use 'builtin' instead.")
195
+ build.type = "builtin"
196
+ end
197
+
198
+ local build_type
199
+ ok, build_type = pcall(require, "luarocks.build." .. build.type)
200
+ if not ok or not type(build_type) == "table" then
201
+ return nil, "Failed initializing build back-end for build type '"..build.type.."': "..build_type
202
+ end
203
+
204
+ ok, err = build_type.run(rockspec)
205
+ if not ok then
206
+ return nil, "Build error: " .. err
207
+ end
208
+ end
209
+
210
+ if build.install then
211
+ for id, install_dir in pairs(dirs) do
212
+ ok, err = install_files(build.install[id], install_dir.name, install_dir.is_module_path)
213
+ if not ok then
214
+ return nil, err
215
+ end
216
+ end
217
+ end
218
+
219
+ local copy_directories = build.copy_directories or {"doc"}
220
+
221
+ for _, copy_dir in pairs(copy_directories) do
222
+ if fs.is_dir(copy_dir) then
223
+ local dest = dir.path(path.install_dir(name, version), copy_dir)
224
+ fs.make_dir(dest)
225
+ fs.copy_contents(copy_dir, dest)
226
+ end
227
+ end
228
+
229
+ for _, d in pairs(dirs) do
230
+ fs.remove_dir_if_empty(d.name)
231
+ end
232
+
233
+ fs.pop_dir()
234
+
235
+ fs.copy(rockspec.local_filename, path.rockspec_file(name, version))
236
+ if need_to_fetch then
237
+ fs.pop_dir()
238
+ end
239
+
240
+ ok, err = manif.make_rock_manifest(name, version)
241
+ if err then return nil, err end
242
+
243
+ ok, err = rep.deploy_files(name, version, rep.should_wrap_bin_scripts(rockspec))
244
+ if err then return nil, err end
245
+
246
+ util.remove_scheduled_function(rollback)
247
+ rollback = util.schedule_function(function()
248
+ rep.delete_version(name, version)
249
+ end)
250
+
251
+ ok, err = rep.run_hook(rockspec, "post_install")
252
+ if err then return nil, err end
253
+
254
+ ok, err = manif.update_manifest(name, version)
255
+ if err then return nil, err end
256
+
257
+ local license = ""
258
+ if rockspec.description and rockspec.description.license then
259
+ license = ("(license: "..rockspec.description.license..")")
260
+ end
261
+
262
+ local root_dir = path.root_dir(cfg.rocks_dir)
263
+ util.printout()
264
+ util.printout(name.." "..version.." is now built and installed in "..root_dir.." "..license)
265
+
266
+ util.remove_scheduled_function(rollback)
267
+ return true
268
+ end
269
+
270
+ --- Build and install a rock.
271
+ -- @param rock_file string: local or remote filename of a rock.
272
+ -- @param need_to_fetch boolean: true if sources need to be fetched,
273
+ -- false if the rockspec was obtained from inside a source rock.
274
+ -- @return boolean or (nil, string, [string]): True if build was successful,
275
+ -- or false and an error message and an optional error code.
276
+ function build_rock(rock_file, need_to_fetch, no_deps)
277
+ assert(type(rock_file) == "string")
278
+ assert(type(need_to_fetch) == "boolean")
279
+
280
+ local unpack_dir, err, errcode = fetch.fetch_and_unpack_rock(rock_file)
281
+ if not unpack_dir then
282
+ return nil, err, errcode
283
+ end
284
+ local rockspec_file = path.rockspec_name_from_rock(rock_file)
285
+ fs.change_dir(unpack_dir)
286
+ local ok, err, errcode = build_rockspec(rockspec_file, need_to_fetch, false, no_deps)
287
+ fs.pop_dir()
288
+ return ok, err, errcode
289
+ end
290
+
291
+ local function do_build(name, version, no_deps)
292
+ if name:match("%.rockspec$") then
293
+ return build_rockspec(name, true, false, no_deps)
294
+ elseif name:match("%.src%.rock$") then
295
+ return build_rock(name, false, no_deps)
296
+ elseif name:match("%.all%.rock$") then
297
+ local install = require("luarocks.install")
298
+ return install.install_binary_rock(name, no_deps)
299
+ elseif name:match("%.rock$") then
300
+ return build_rock(name, true, no_deps)
301
+ elseif not name:match(dir.separator) then
302
+ local search = require("luarocks.search")
303
+ return search.act_on_src_or_rockspec(run, name:lower(), version, no_deps and "--nodeps")
304
+ end
305
+ return nil, "Don't know what to do with "..name
306
+ end
307
+
308
+ --- Driver function for "build" command.
309
+ -- @param name string: A local or remote rockspec or rock file.
310
+ -- If a package name is given, forwards the request to "search" and,
311
+ -- if returned a result, installs the matching rock.
312
+ -- @param version string: When passing a package name, a version number may
313
+ -- also be given.
314
+ -- @return boolean or (nil, string): True if build was successful; nil and an
315
+ -- error message otherwise.
316
+ function run(...)
317
+ local flags, name, version = util.parse_flags(...)
318
+ if type(name) ~= "string" then
319
+ return nil, "Argument missing, see help."
320
+ end
321
+ assert(type(version) == "string" or not version)
322
+
323
+ if flags["pack-binary-rock"] then
324
+ return pack.pack_binary_rock(name, version, do_build, name, version, flags["nodeps"])
325
+ else
326
+ local ok, err = fs.check_command_permissions(flags)
327
+ if not ok then return nil, err end
328
+ return do_build(name, version, flags["nodeps"])
329
+ end
330
+ end