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,173 @@
1
+
2
+ --- Utility module for loading files into tables and
3
+ -- saving tables into files.
4
+ -- Implemented separately to avoid interdependencies,
5
+ -- as it is used in the bootstrapping stage of the cfg module.
6
+ module("luarocks.persist", package.seeall)
7
+
8
+ local util = require("luarocks.util")
9
+
10
+ --- Load a Lua file containing assignments, storing them in a table.
11
+ -- The global environment is not propagated to the loaded file.
12
+ -- @param filename string: the name of the file.
13
+ -- @param tbl table or nil: if given, this table is used to store
14
+ -- loaded values.
15
+ -- @return table or (nil, string): a table with the file's assignments
16
+ -- as fields, or nil and a message in case of errors.
17
+ function load_into_table(filename, tbl)
18
+ assert(type(filename) == "string")
19
+ assert(type(tbl) == "table" or not tbl)
20
+
21
+ local result, chunk, ran, err
22
+ local result = tbl or {}
23
+ if setfenv then -- Lua 5.1
24
+ chunk, err = loadfile(filename)
25
+ if chunk then
26
+ setfenv(chunk, result)
27
+ ran, err = pcall(chunk)
28
+ end
29
+ else -- Lua 5.2
30
+ chunk, err = loadfile(filename, "t", result)
31
+ if chunk then
32
+ ran, err = pcall(chunk)
33
+ end
34
+ end
35
+
36
+ if not chunk then
37
+ if err:sub(1,5) ~= filename:sub(1,5) then
38
+ return false, err
39
+ end
40
+ return nil, "Error loading file: "..err
41
+ end
42
+ if not ran then
43
+ return nil, "Error running file: "..err
44
+ end
45
+ return result
46
+ end
47
+
48
+ local write_table
49
+
50
+ --- Write a value as Lua code, invoking write_table.
51
+ -- This function handles only numbers, strings and tables
52
+ -- are keys (tables are handled recursively).
53
+ -- @param out userdata: a file object, open for writing.
54
+ -- @param v: the value to be written.
55
+ -- @param level number: the indentation level
56
+ -- @param sub_order table: optional prioritization table
57
+ -- @see write_table
58
+ local function write_value(out, v, level, sub_order)
59
+ if type(v) == "table" then
60
+ write_table(out, v, level + 1, sub_order)
61
+ elseif type(v) == "string" then
62
+ if v:match("\n") then
63
+ local open, close = "[[", "]]"
64
+ local equals = 0
65
+ while v:find(open,1,true) or v:find(close,1,true) do
66
+ equals = equals + 1
67
+ local eqs = ("="):rep(equals)
68
+ open, close = "["..eqs.."[", "]"..eqs.."]"
69
+ end
70
+ out:write(open.."\n"..v..close)
71
+ else
72
+ out:write("\""..v:gsub("\"", "\\\"").."\"")
73
+ end
74
+ else
75
+ out:write(tostring(v))
76
+ end
77
+ end
78
+
79
+ --- Write a table as Lua code representing a table to disk
80
+ -- (that is, in curly brackets notation).
81
+ -- This function handles only numbers, strings and tables
82
+ -- are keys (tables are handled recursively).
83
+ -- @param out userdata: a file object, open for writing.
84
+ -- @param tbl table: the table to be written.
85
+ -- @param level number: the indentation level
86
+ -- @param field_order table: optional prioritization table
87
+ write_table = function(out, tbl, level, field_order)
88
+ out:write("{")
89
+ local sep = "\n"
90
+ local indentation = " "
91
+ local indent = true
92
+ local i = 1
93
+ for k, v, sub_order in util.sortedpairs(tbl, field_order) do
94
+ out:write(sep)
95
+ if indent then
96
+ for n = 1,level do out:write(indentation) end
97
+ end
98
+ sep = ",\n"
99
+ indent = true
100
+ if type(k) == "number" then
101
+ if k ~= i then
102
+ out:write("["..tostring(k).."]=")
103
+ else
104
+ i = i + 1
105
+ end
106
+ indent = false
107
+ sep = ", "
108
+ elseif type(k) == "table" then
109
+ out:write("[")
110
+ write_table(out, k, level + 1)
111
+ out:write("] = ")
112
+ else
113
+ if k:match("^[a-zA-Z_][a-zA-Z0-9_]*$") then
114
+ out:write(k.." = ")
115
+ else
116
+ out:write("['"..k:gsub("'", "\\'").."'] = ")
117
+ end
118
+ end
119
+ write_value(out, v, level, sub_order)
120
+ end
121
+ if sep ~= "\n" then
122
+ out:write("\n")
123
+ for n = 1,level-1 do out:write(indentation) end
124
+ end
125
+ out:write("}")
126
+ end
127
+
128
+ --- Writes a table to an io-like object.
129
+ -- @param out userdata: a file object, open for writing.
130
+ -- @param tbl table: the table to be written.
131
+ -- @param field_order table: optional prioritization table
132
+ -- @return userdata The file object originally passed in as the `out` parameter.
133
+ local function write_table(out, tbl, field_order)
134
+ for k, v, sub_order in util.sortedpairs(tbl, field_order) do
135
+ out:write(k.." = ")
136
+ write_value(out, v, 0, sub_order)
137
+ out:write("\n")
138
+ end
139
+ return out
140
+ end
141
+
142
+ --- Save the contents of a table to a string.
143
+ -- Each element of the table is saved as a global assignment.
144
+ -- Only numbers, strings and tables (containing numbers, strings
145
+ -- or other recursively processed tables) are supported.
146
+ -- @param tbl table: the table containing the data to be written
147
+ -- @param field_order table: an optional array indicating the order of top-level fields.
148
+ -- @return string
149
+ function save_from_table_to_string(tbl, field_order)
150
+ local out = {buffer = {}}
151
+ function out:write(data) table.insert(self.buffer, data) end
152
+ write_table(out, tbl, field_order)
153
+ return table.concat(out.buffer)
154
+ end
155
+
156
+ --- Save the contents of a table in a file.
157
+ -- Each element of the table is saved as a global assignment.
158
+ -- Only numbers, strings and tables (containing numbers, strings
159
+ -- or other recursively processed tables) are supported.
160
+ -- @param filename string: the output filename
161
+ -- @param tbl table: the table containing the data to be written
162
+ -- @param field_order table: an optional array indicating the order of top-level fields.
163
+ -- @return boolean or (nil, string): true if successful, or nil and a
164
+ -- message in case of errors.
165
+ function save_from_table(filename, tbl, field_order)
166
+ local out = io.open(filename, "w")
167
+ if not out then
168
+ return nil, "Cannot create file at "..filename
169
+ end
170
+ write_table(out, tbl, field_order)
171
+ out:close()
172
+ return true
173
+ end
@@ -0,0 +1,30 @@
1
+
2
+ --- Module implementing the luarocks-admin "refresh_cache" command.
3
+ module("luarocks.refresh_cache", package.seeall)
4
+
5
+ local util = require("luarocks.util")
6
+ local cfg = require("luarocks.cfg")
7
+ local cache = require("luarocks.cache")
8
+
9
+ help_summary = "Refresh local cache of a remote rocks server."
10
+ help_arguments = "[--from=<server>]"
11
+ help = [[
12
+ The flag --from indicates which server to use.
13
+ If not given, the default server set in the upload_server variable
14
+ from the configuration file is used instead.
15
+ ]]
16
+
17
+ function run(...)
18
+ local flags = util.parse_flags(...)
19
+ local server, upload_server = cache.get_upload_server(flags["server"])
20
+ if not server then return nil, upload_server end
21
+ local download_url = cache.get_server_urls(server, upload_server)
22
+
23
+ local ok, err = cache.refresh_local_cache(server, download_url, cfg.upload_user, cfg.upload_password)
24
+ if not ok then
25
+ return nil, err
26
+ else
27
+ return true
28
+ end
29
+ end
30
+
@@ -0,0 +1,135 @@
1
+
2
+ --- Module implementing the LuaRocks "remove" command.
3
+ -- Uninstalls rocks.
4
+ module("luarocks.remove", package.seeall)
5
+
6
+ local search = require("luarocks.search")
7
+ local deps = require("luarocks.deps")
8
+ local fetch = require("luarocks.fetch")
9
+ local rep = require("luarocks.rep")
10
+ local path = require("luarocks.path")
11
+ local util = require("luarocks.util")
12
+ local cfg = require("luarocks.cfg")
13
+ local manif = require("luarocks.manif")
14
+ local fs = require("luarocks.fs")
15
+
16
+ help_summary = "Uninstall a rock."
17
+ help_arguments = "[--force] <name> [<version>]"
18
+ help = [[
19
+ Argument is the name of a rock to be uninstalled.
20
+ If a version is not given, try to remove all versions at once.
21
+ Will only perform the removal if it does not break dependencies.
22
+ To override this check and force the removal, use --force.
23
+ ]]
24
+
25
+ --- Obtain a list of packages that depend on the given set of packages
26
+ -- (where all packages of the set are versions of one program).
27
+ -- @param name string: the name of a program
28
+ -- @param versions array of string: the versions to be deleted.
29
+ -- @return array of string: an empty table if no packages depend on any
30
+ -- of the given list, or an array of strings in "name/version" format.
31
+ local function check_dependents(name, versions)
32
+ local dependents = {}
33
+ local blacklist = {}
34
+ blacklist[name] = {}
35
+ for version, _ in pairs(versions) do
36
+ blacklist[name][version] = true
37
+ end
38
+ local local_rocks = {}
39
+ local query_all = search.make_query("")
40
+ query_all.exact_name = false
41
+ search.manifest_search(local_rocks, cfg.rocks_dir, query_all)
42
+ local_rocks[name] = nil
43
+ for rock_name, rock_versions in pairs(local_rocks) do
44
+ for rock_version, _ in pairs(rock_versions) do
45
+ local rockspec, err = fetch.load_rockspec(path.rockspec_file(rock_name, rock_version))
46
+ if rockspec then
47
+ local _, missing = deps.match_deps(rockspec, blacklist)
48
+ if missing[name] then
49
+ table.insert(dependents, { name = rock_name, version = rock_version })
50
+ end
51
+ end
52
+ end
53
+ end
54
+ return dependents
55
+ end
56
+
57
+ --- Delete given versions of a program.
58
+ -- @param name string: the name of a program
59
+ -- @param versions array of string: the versions to be deleted.
60
+ -- @return boolean or (nil, string): true on success or nil and an error message.
61
+ local function delete_versions(name, versions)
62
+
63
+ for version, _ in pairs(versions) do
64
+ util.printout("Removing "..name.." "..version.."...")
65
+ local ok, err = rep.delete_version(name, version)
66
+ if not ok then return nil, err end
67
+ end
68
+
69
+ return true
70
+ end
71
+
72
+ --- Driver function for the "remove" command.
73
+ -- @param name string: name of a rock. If a version is given, refer to
74
+ -- a specific version; otherwise, try to remove all versions.
75
+ -- @param version string: When passing a package name, a version number
76
+ -- may also be given.
77
+ -- @return boolean or (nil, string): True if removal was
78
+ -- successful, nil and an error message otherwise.
79
+ function run(...)
80
+ local flags, name, version = util.parse_flags(...)
81
+
82
+ if type(name) ~= "string" then
83
+ return nil, "Argument missing, see help."
84
+ end
85
+
86
+ local ok, err = fs.check_command_permissions(flags)
87
+ if not ok then return nil, err end
88
+
89
+ local results = {}
90
+ search.manifest_search(results, cfg.rocks_dir, search.make_query(name, version))
91
+
92
+ local versions = results[name]
93
+ if not versions then
94
+ return nil, "Could not find rock '"..name..(version and " "..version or "").."' in local tree."
95
+ else
96
+ local version = next(versions)
97
+ local second = next(versions, version)
98
+
99
+ util.printout("Checking stability of dependencies on the absence of")
100
+ util.printout(name.." "..table.concat(util.keys(versions), ", ").."...")
101
+ util.printout()
102
+
103
+ local dependents = check_dependents(name, versions)
104
+
105
+ if #dependents == 0 or flags["force"] then
106
+ if #dependents > 0 then
107
+ util.printerr("The following packages may be broken by this forced removal:")
108
+ for _, dependent in ipairs(dependents) do
109
+ util.printerr(dependent.name.." "..dependent.version)
110
+ end
111
+ util.printerr()
112
+ end
113
+ local ok, err = delete_versions(name, versions)
114
+ if not ok then return nil, err end
115
+ ok, err = manif.make_manifest(cfg.rocks_dir)
116
+ if not ok then return nil, err end
117
+ else
118
+ if not second then
119
+ util.printerr("Will not remove "..name.." "..version..".")
120
+ util.printerr("Removing it would break dependencies for: ")
121
+ else
122
+ util.printerr("Will not remove all versions of "..name..".")
123
+ util.printerr("Removing them would break dependencies for: ")
124
+ end
125
+ for _, dependent in ipairs(dependents) do
126
+ util.printerr(dependent.name.." "..dependent.version)
127
+ end
128
+ util.printerr()
129
+ util.printerr("Use --force to force removal (warning: this may break modules).")
130
+ return nil, "Failed removing."
131
+ end
132
+ end
133
+ util.printout("Removal successful.")
134
+ return true
135
+ end
@@ -0,0 +1,313 @@
1
+
2
+ --- Functions for managing the repository on disk.
3
+ module("luarocks.rep", package.seeall)
4
+
5
+ local fs = require("luarocks.fs")
6
+ local path = require("luarocks.path")
7
+ local cfg = require("luarocks.cfg")
8
+ local util = require("luarocks.util")
9
+ local dir = require("luarocks.dir")
10
+ local manif = require("luarocks.manif")
11
+ local deps = require("luarocks.deps")
12
+
13
+ --- Get all installed versions of a package.
14
+ -- @param name string: a package name.
15
+ -- @return table or nil: An array of strings listing installed
16
+ -- versions of a package, or nil if none is available.
17
+ function get_versions(name)
18
+ assert(type(name) == "string")
19
+
20
+ local dirs = fs.list_dir(path.versions_dir(name))
21
+ return (dirs and #dirs > 0) and dirs or nil
22
+ end
23
+
24
+ --- Check if a package exists in a local repository.
25
+ -- Version numbers are compared as exact string comparison.
26
+ -- @param name string: name of package
27
+ -- @param version string: package version in string format
28
+ -- @return boolean: true if a package is installed,
29
+ -- false otherwise.
30
+ function is_installed(name, version)
31
+ assert(type(name) == "string")
32
+ assert(type(version) == "string")
33
+
34
+ return fs.is_dir(path.install_dir(name, version))
35
+ end
36
+
37
+ local function recurse_rock_manifest_tree(file_tree, action)
38
+ assert(type(file_tree) == "table")
39
+ assert(type(action) == "function")
40
+ local function do_recurse_rock_manifest_tree(tree, parent_path, parent_module)
41
+
42
+ for file, sub in pairs(tree) do
43
+ if type(sub) == "table" then
44
+ local ok, err = do_recurse_rock_manifest_tree(sub, parent_path..file.."/", parent_module..file..".")
45
+ if not ok then return nil, err end
46
+ else
47
+ local ok, err = action(parent_path, parent_module, file)
48
+ if not ok then return nil, err end
49
+ end
50
+ end
51
+ return true
52
+ end
53
+ return do_recurse_rock_manifest_tree(file_tree, "", "")
54
+ end
55
+
56
+ local function store_package_data(result, name, sub, prefix)
57
+ assert(type(result) == "table")
58
+ assert(type(name) == "string")
59
+ assert(type(sub) == "table" or type(sub) == "string")
60
+ assert(type(prefix) == "string")
61
+
62
+ if type(sub) == "table" then
63
+ for sname, ssub in pairs(sub) do
64
+ store_package_data(result, sname, ssub, prefix..name.."/")
65
+ end
66
+ elseif type(sub) == "string" then
67
+ local pathname = prefix..name
68
+ result[path.path_to_module(pathname)] = pathname
69
+ end
70
+ end
71
+
72
+ local function store_package_data(result, name, file_tree)
73
+ if not file_tree then return end
74
+ return recurse_rock_manifest_tree(file_tree,
75
+ function(parent_path, parent_module, file)
76
+ local pathname = parent_path..file
77
+ result[path.path_to_module(pathname)] = pathname
78
+ return true
79
+ end
80
+ )
81
+ end
82
+
83
+ --- Obtain a list of modules within an installed package.
84
+ -- @param package string: The package name; for example "luasocket"
85
+ -- @param version string: The exact version number including revision;
86
+ -- for example "2.0.1-1".
87
+ -- @return table: A table of modules where keys are module identifiers
88
+ -- in "foo.bar" format and values are pathnames in architecture-dependent
89
+ -- "foo/bar.so" format. If no modules are found or if package or version
90
+ -- are invalid, an empty table is returned.
91
+ function package_modules(package, version)
92
+ assert(type(package) == "string")
93
+ assert(type(version) == "string")
94
+
95
+ local result = {}
96
+ local rock_manifest = manif.load_rock_manifest(package, version)
97
+ store_package_data(result, package, rock_manifest.lib)
98
+ store_package_data(result, package, rock_manifest.lua)
99
+ return result
100
+ end
101
+
102
+ --- Obtain a list of command-line scripts within an installed package.
103
+ -- @param package string: The package name; for example "luasocket"
104
+ -- @param version string: The exact version number including revision;
105
+ -- for example "2.0.1-1".
106
+ -- @return table: A table of items where keys are command names
107
+ -- as strings and values are pathnames in architecture-dependent
108
+ -- ".../bin/foo" format. If no modules are found or if package or version
109
+ -- are invalid, an empty table is returned.
110
+ function package_commands(package, version)
111
+ assert(type(package) == "string")
112
+ assert(type(version) == "string")
113
+
114
+ local result = {}
115
+ local rock_manifest = manif.load_rock_manifest(package, version)
116
+ store_package_data(result, package, rock_manifest.bin)
117
+ return result
118
+ end
119
+
120
+
121
+ --- Check if a rock contains binary executables.
122
+ -- @param name string: name of an installed rock
123
+ -- @param version string: version of an installed rock
124
+ -- @return boolean: returns true if rock contains platform-specific
125
+ -- binary executables, or false if it is a pure-Lua rock.
126
+ function has_binaries(name, version)
127
+ assert(type(name) == "string")
128
+ assert(type(version) == "string")
129
+
130
+ local rock_manifest = manif.load_rock_manifest(name, version)
131
+ if rock_manifest.bin then
132
+ for name, md5 in pairs(rock_manifest.bin) do
133
+ -- TODO verify that it is the same file. If it isn't, find the actual command.
134
+ if fs.is_actual_binary(dir.path(cfg.deploy_bin_dir, name)) then
135
+ return true
136
+ end
137
+ end
138
+ end
139
+ return false
140
+ end
141
+
142
+ function run_hook(rockspec, hook_name)
143
+ assert(type(rockspec) == "table")
144
+ assert(type(hook_name) == "string")
145
+
146
+ local hooks = rockspec.hooks
147
+ if not hooks then
148
+ return true
149
+ end
150
+ if not hooks.substituted_variables then
151
+ util.variable_substitutions(hooks, rockspec.variables)
152
+ hooks.substituted_variables = true
153
+ end
154
+ local hook = hooks[hook_name]
155
+ if hook then
156
+ util.printout(hook)
157
+ if not fs.execute(hook) then
158
+ return nil, "Failed running "..hook_name.." hook."
159
+ end
160
+ end
161
+ return true
162
+ end
163
+
164
+ local function install_binary(source, target)
165
+ assert(type(source) == "string")
166
+ assert(type(target) == "string")
167
+
168
+ local match = source:match("%.lua$")
169
+ local file, ok, err
170
+ if not match then
171
+ file = io.open(source)
172
+ end
173
+ if match or (file and file:read():match("^#!.*lua.*")) then
174
+ ok, err = fs.wrap_script(source, target)
175
+ else
176
+ ok, err = fs.copy_binary(source, target)
177
+ end
178
+ if file then file:close() end
179
+ return ok, err
180
+ end
181
+
182
+ local function resolve_conflict(target, deploy_dir, name, version)
183
+ local cname, cversion = manif.find_current_provider(target)
184
+ if not cname then
185
+ return nil, cversion
186
+ end
187
+ if name ~= cname or deps.compare_versions(version, cversion) then
188
+ local versioned = path.versioned_name(target, deploy_dir, cname, cversion)
189
+ fs.make_dir(dir.dir_name(versioned))
190
+ fs.move(target, versioned)
191
+ return target
192
+ else
193
+ return path.versioned_name(target, deploy_dir, name, version)
194
+ end
195
+ end
196
+
197
+ function should_wrap_bin_scripts(rockspec)
198
+ assert(type(rockspec) == "table")
199
+
200
+ if cfg.wrap_bin_scripts ~= nil then
201
+ return cfg.wrap_bin_scripts
202
+ end
203
+ if rockspec.deploy and rockspec.deploy.wrap_bin_scripts == false then
204
+ return false
205
+ end
206
+ return true
207
+ end
208
+
209
+ function deploy_files(name, version, wrap_bin_scripts)
210
+ assert(type(name) == "string")
211
+ assert(type(version) == "string")
212
+ assert(type(wrap_bin_scripts) == "boolean")
213
+
214
+ local function deploy_file_tree(file_tree, source_dir, deploy_dir, move_fn)
215
+ if not move_fn then
216
+ move_fn = fs.move
217
+ end
218
+ return recurse_rock_manifest_tree(file_tree,
219
+ function(parent_path, parent_module, file)
220
+ local source = dir.path(source_dir, parent_path, file)
221
+ local target = dir.path(deploy_dir, parent_path, file)
222
+ local ok, err
223
+ if fs.exists(target) then
224
+ local new_target, err = resolve_conflict(target, deploy_dir, name, version)
225
+ if err == "untracked" then
226
+ fs.delete(target)
227
+ elseif err then
228
+ return nil, err.." Cannot install new version."
229
+ else
230
+ target = new_target
231
+ end
232
+ end
233
+ fs.make_dir(dir.dir_name(target))
234
+ ok, err = move_fn(source, target)
235
+ fs.remove_dir_tree_if_empty(dir.dir_name(source))
236
+ if not ok then return nil, err end
237
+ return true
238
+ end
239
+ )
240
+ end
241
+
242
+ local rock_manifest = manif.load_rock_manifest(name, version)
243
+
244
+ local ok, err = true
245
+ if rock_manifest.bin then
246
+ local move_bin_fn = wrap_bin_scripts and install_binary or fs.copy_binary
247
+ ok, err = deploy_file_tree(rock_manifest.bin, path.bin_dir(name, version), cfg.deploy_bin_dir, move_bin_fn)
248
+ end
249
+ if ok and rock_manifest.lua then
250
+ ok, err = deploy_file_tree(rock_manifest.lua, path.lua_dir(name, version), cfg.deploy_lua_dir)
251
+ end
252
+ if ok and rock_manifest.lib then
253
+ ok, err = deploy_file_tree(rock_manifest.lib, path.lib_dir(name, version), cfg.deploy_lib_dir)
254
+ end
255
+ return ok, err
256
+ end
257
+
258
+ --- Delete a package from the local repository.
259
+ -- Version numbers are compared as exact string comparison.
260
+ -- @param name string: name of package
261
+ -- @param version string: package version in string format
262
+ function delete_version(name, version)
263
+ assert(type(name) == "string")
264
+ assert(type(version) == "string")
265
+
266
+ local function delete_deployed_file_tree(file_tree, deploy_dir)
267
+ return recurse_rock_manifest_tree(file_tree,
268
+ function(parent_path, parent_module, file)
269
+ local target = dir.path(deploy_dir, parent_path, file)
270
+ local versioned = path.versioned_name(target, deploy_dir, name, version)
271
+ if fs.exists(versioned) then
272
+ local ok = fs.delete(versioned)
273
+ fs.remove_dir_tree_if_empty(dir.dir_name(versioned))
274
+ if not ok then return nil, "Failed deleting "..versioned end
275
+ else
276
+ local ok = fs.delete(target)
277
+ local next_name, next_version = manif.find_next_provider(target)
278
+ if next_name then
279
+ local versioned = path.versioned_name(target, deploy_dir, next_name, next_version)
280
+ fs.move(versioned, target)
281
+ fs.remove_dir_tree_if_empty(dir.dir_name(versioned))
282
+ end
283
+ fs.remove_dir_tree_if_empty(dir.dir_name(target))
284
+ if not ok then return nil, "Failed deleting "..target end
285
+ end
286
+ return true
287
+ end
288
+ )
289
+ end
290
+
291
+ local rock_manifest = manif.load_rock_manifest(name, version)
292
+ if not rock_manifest then
293
+ return nil, "rock_manifest file not found for "..name.." "..version.." - not a LuaRocks 2 tree?"
294
+ end
295
+
296
+ local ok, err = true
297
+ if rock_manifest.bin then
298
+ ok, err = delete_deployed_file_tree(rock_manifest.bin, cfg.deploy_bin_dir)
299
+ end
300
+ if ok and rock_manifest.lua then
301
+ ok, err = delete_deployed_file_tree(rock_manifest.lua, cfg.deploy_lua_dir)
302
+ end
303
+ if ok and rock_manifest.lib then
304
+ ok, err = delete_deployed_file_tree(rock_manifest.lib, cfg.deploy_lib_dir)
305
+ end
306
+ if err then return nil, err end
307
+
308
+ fs.delete(path.install_dir(name, version))
309
+ if not get_versions(name) then
310
+ fs.delete(dir.path(cfg.rocks_dir, name))
311
+ end
312
+ return true
313
+ end