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,307 @@
1
+ -- Encapsulated Git functionality
2
+
3
+ module ("dist.git", package.seeall)
4
+
5
+ require "git"
6
+ local sys = require "dist.sys"
7
+ local cfg = require "dist.config"
8
+
9
+
10
+ -- Clone the repository from url to dest_dir
11
+ function clone(repository_url, dest_dir, depth, branch)
12
+ assert(type(repository_url) == "string", "git.clone: Argument 'repository_url' is not a string.")
13
+ assert(type(dest_dir) == "string", "git.clone: Argument 'dest_dir' is not a string.")
14
+ dest_dir = sys.abs_path(dest_dir)
15
+
16
+ local command = "git clone " .. repository_url
17
+
18
+ if depth then
19
+ assert(type(depth) == "number", "git.clone: Argument 'depth' is not a number.")
20
+ command = command .. " --depth " .. depth
21
+ end
22
+
23
+ if branch then
24
+ assert(type(branch) == "string", "git.clone: Argument 'branch' is not a string.")
25
+ command = command .. " -b " .. branch
26
+ end
27
+
28
+ command = command .. " " .. sys.quote(dest_dir)
29
+ if sys.exists(dest_dir) then sys.delete(dest_dir) end
30
+ sys.make_dir(dest_dir)
31
+
32
+ -- change the current working directory to dest_dir
33
+ local prev_current_dir = sys.current_dir()
34
+ sys.change_dir(dest_dir)
35
+
36
+ -- execute git clone
37
+ if not cfg.debug then command = command .. " -q " end
38
+ local ok, err = sys.exec(command)
39
+
40
+ -- change the current working directory back
41
+ sys.change_dir(prev_current_dir)
42
+
43
+ return ok, err
44
+ end
45
+
46
+ -- Return table of all refs of the remote repository at the 'git_url'. Ref_type can be "tags" or "heads".
47
+ local function get_remote_refs(git_url, ref_type)
48
+ assert(type(git_url) == "string", "git.get_remote_refs: Argument 'git_url' is not a string.")
49
+ assert(type(ref_type) == "string", "git.get_remote_refs: Argument 'ref_type' is not a string.")
50
+ assert(ref_type == "tags" or ref_type == "heads", "git.get_remote_refs: Argument 'ref_type' is not \"tags\" or \"heads\".")
51
+
52
+ local refs = {}
53
+
54
+ local ok, refs_or_err = pcall(git.protocol.remotes, git_url)
55
+ if not ok then return nil, "Error getting refs of the remote repository '" .. git_url .. "': " .. refs_or_err end
56
+
57
+ for ref, sha in pairs(refs_or_err) do
58
+ if ref:match("%S+/" .. ref_type .. "/%S+") and not ref:match("%^{}") then
59
+ table.insert(refs, ref:match("%S+/" .. ref_type .. "/(%S+)"))
60
+ end
61
+ end
62
+
63
+ return refs
64
+ end
65
+
66
+ -- Return table of all tags of the repository at the 'git_url'
67
+ function get_remote_tags(git_url)
68
+ return get_remote_refs(git_url, "tags")
69
+ end
70
+
71
+ -- Return table of all branches of the repository at the 'git_url'
72
+ function get_remote_branches(git_url)
73
+ return get_remote_refs(git_url, "heads")
74
+ end
75
+
76
+ -- Checkout specified ref in specified git_repo_dir
77
+ function checkout_ref(ref, git_repo_dir, orphaned)
78
+ git_repo_dir = git_repo_dir or sys.current_dir()
79
+ orphaned = orphaned or false
80
+ assert(type(ref) == "string", "git.checkout_ref: Argument 'ref' is not a string.")
81
+ assert(type(git_repo_dir) == "string", "git.checkout_ref: Argument 'git_repo_dir' is not a string.")
82
+ assert(type(orphaned) == "boolean", "git.checkout_ref: Argument 'orphaned' is not a boolean.")
83
+ git_repo_dir = sys.abs_path(git_repo_dir)
84
+
85
+ local command = "git checkout "
86
+ if orphaned then command = command .. " --orphan " end
87
+ command = command .. " " .. ref .. " -f"
88
+ if not cfg.debug then command = command .. " -q " end
89
+
90
+ local ok, err
91
+ if git_repo_dir ~= sys.current_dir() then
92
+ local prev_current_dir = sys.current_dir()
93
+ sys.change_dir(git_repo_dir)
94
+ ok, err = sys.exec(command)
95
+ sys.change_dir(prev_current_dir)
96
+ else
97
+ ok, err = sys.exec(command)
98
+ end
99
+
100
+ return ok, err
101
+ end
102
+
103
+ -- Checkout specified sha in specified git_repo_dir
104
+ function checkout_sha(sha, git_repo_dir)
105
+ git_repo_dir = git_repo_dir or sys.current_dir()
106
+ assert(type(sha) == "string", "git.checkout_sha: Argument 'sha' is not a string.")
107
+ assert(type(git_repo_dir) == "string", "git.checkout_sha: Argument 'git_repo_dir' is not a string.")
108
+ git_repo_dir = sys.abs_path(git_repo_dir)
109
+
110
+ local dir_changed, prev_current_dir
111
+
112
+ if git_repo_dir ~= sys.current_dir() then
113
+ prev_current_dir = sys.current_dir()
114
+ sys.change_dir(git_repo_dir)
115
+ dir_changed = true
116
+ end
117
+
118
+ local ok, repo_or_err = pcall(git.repo.open, git_repo_dir)
119
+ if not ok then return nil, "Error when opening the git repository '" .. git_repo_dir .. "': " .. repo_or_err end
120
+
121
+ local err
122
+ ok, err = pcall(repo_or_err.checkout, repo_or_err, sha, git_repo_dir)
123
+ if not ok then return nil, "Error when checking out the sha '" .. sha .. "' in the git repository '" .. git_repo_dir .. "': " .. err end
124
+
125
+ repo_or_err:close()
126
+ if dir_changed then sys.change_dir(prev_current_dir) end
127
+
128
+ return true
129
+ end
130
+
131
+ -- Create an empty git repository in given directory.
132
+ function init(dir)
133
+ dir = dir or sys.current_dir()
134
+ assert(type(dir) == "string", "git.init: Argument 'dir' is not a string.")
135
+ dir = sys.abs_path(dir)
136
+
137
+ -- create the 'dir' first, since it causes 'git init' to fail on Windows
138
+ -- when the parent directory of 'dir' doesn't exist
139
+ local ok, err = sys.make_dir(dir)
140
+ if not ok then return nil, err end
141
+
142
+ local command = "git init " .. dir
143
+ if not cfg.debug then command = command .. " -q " end
144
+ return sys.exec(command)
145
+ end
146
+
147
+ -- Add all files in the 'repo_dir' to the git index. The 'repo_dir' must be
148
+ -- in the initialized git repository.
149
+ function add_all(repo_dir)
150
+ repo_dir = repo_dir or sys.current_dir()
151
+ assert(type(repo_dir) == "string", "git.add_all: Argument 'repo_dir' is not a string.")
152
+ repo_dir = sys.abs_path(repo_dir)
153
+
154
+ local ok, prev_dir, msg
155
+ ok, prev_dir = sys.change_dir(repo_dir);
156
+ if not ok then return nil, err end
157
+
158
+ ok, msg = sys.exec("git add -A -f " .. repo_dir)
159
+ sys.change_dir(prev_dir)
160
+
161
+ return ok, msg
162
+ end
163
+
164
+ -- Commit all indexed files in 'repo_dir' with the given commit 'message'.
165
+ -- The 'repo_dir' must be in the initialized git repository.
166
+ function commit(message, repo_dir)
167
+ repo_dir = repo_dir or sys.current_dir()
168
+ message = message or "commit by luadist-git"
169
+ message = sys.quote(message)
170
+ assert(type(message) == "string", "git.commit: Argument 'message' is not a string.")
171
+ assert(type(repo_dir) == "string", "git.commit: Argument 'repo_dir' is not a string.")
172
+ repo_dir = sys.abs_path(repo_dir)
173
+
174
+ local ok, prev_dir, msg
175
+ ok, prev_dir = sys.change_dir(repo_dir);
176
+ if not ok then return nil, err end
177
+
178
+ local command = "git commit -m " .. message
179
+ if not cfg.debug then command = command .. " -q " end
180
+ ok, msg = sys.exec(command)
181
+ sys.change_dir(prev_dir)
182
+
183
+ return ok, msg
184
+ end
185
+
186
+
187
+ -- Rename branch 'old_name' to 'new_name'. -- The 'repo_dir' must be
188
+ -- in the initialized git repository and the branch 'new_name' must
189
+ -- not already exist in that repository.
190
+ function rename_branch(old_name, new_name, repo_dir)
191
+ repo_dir = repo_dir or sys.current_dir()
192
+ assert(type(old_name) == "string", "git.rename_branch: Argument 'old_name' is not a string.")
193
+ assert(type(new_name) == "string", "git.rename_branch: Argument 'new_name' is not a string.")
194
+ assert(type(repo_dir) == "string", "git.rename_branch: Argument 'repo_dir' is not a string.")
195
+ repo_dir = sys.abs_path(repo_dir)
196
+
197
+ local ok, prev_dir, msg
198
+ ok, prev_dir = sys.change_dir(repo_dir);
199
+ if not ok then return nil, err end
200
+
201
+ ok, msg = sys.exec("git branch -m " .. old_name .. " " .. new_name)
202
+ sys.change_dir(prev_dir)
203
+
204
+ return ok, msg
205
+ end
206
+
207
+ -- Push the ref 'ref_name' from the 'repo_dir' to the remote git
208
+ -- repository 'git_repo_url'. If 'all_tags' is set to true, all tags
209
+ -- will be pushed, in addition to the explicitly given ref.
210
+ -- If 'delete' is set to 'true' then the explicitly given remote ref
211
+ -- will be deleted, not pushed.
212
+ function push_ref(repo_dir, ref_name, git_repo_url, all_tags, delete)
213
+ repo_dir = repo_dir or sys.current_dir()
214
+ all_tags = all_tags or false
215
+ delete = delete or false
216
+ assert(type(repo_dir) == "string", "git.push_ref: Argument 'repo_dir' is not a string.")
217
+ assert(type(git_repo_url) == "string", "git.push_ref: Argument 'git_repo_url' is not a string.")
218
+ assert(type(ref_name) == "string", "git.push_ref: Argument 'ref_name' is not a string.")
219
+ assert(type(all_tags) == "boolean", "git.push_ref: Argument 'all_tags' is not a boolean.")
220
+ assert(type(delete) == "boolean", "git.push_ref: Argument 'delete' is not a boolean.")
221
+ repo_dir = sys.abs_path(repo_dir)
222
+
223
+ local ok, prev_dir, msg
224
+ ok, prev_dir = sys.change_dir(repo_dir);
225
+ if not ok then return nil, err end
226
+
227
+ local command = "git push " .. git_repo_url
228
+ if all_tags then command = command .. " --tags " end
229
+ if delete then command = command .. " --delete " end
230
+ command = command .. " " .. ref_name .. " -f "
231
+ if not cfg.debug then command = command .. " -q " end
232
+
233
+ ok, msg = sys.exec(command)
234
+ sys.change_dir(prev_dir)
235
+
236
+ return ok, msg
237
+ end
238
+
239
+ -- Creates the tag 'tag_name' in given 'repo_dir', which must be
240
+ -- in the initialized git repository
241
+ function create_tag(repo_dir, tag_name)
242
+ repo_dir = repo_dir or sys.current_dir()
243
+ assert(type(repo_dir) == "string", "git.create_tag: Argument 'repo_dir' is not a string.")
244
+ assert(type(tag_name) == "string", "git.create_tag: Argument 'tag_name' is not a string.")
245
+ repo_dir = sys.abs_path(repo_dir)
246
+
247
+ local ok, prev_dir, msg
248
+ ok, prev_dir = sys.change_dir(repo_dir);
249
+ if not ok then return nil, err end
250
+
251
+ ok, msg = sys.exec("git tag " .. tag_name .. " -f ")
252
+ sys.change_dir(prev_dir)
253
+
254
+ return ok, msg
255
+ end
256
+
257
+ -- Fetch given 'ref_name' from the remote 'git_repo_url' to the local repository
258
+ -- 'repo_dir' and return its sha. 'ref_type' can be "tag" or "head".
259
+ local function fetch_ref(repo_dir, git_repo_url, ref_name, ref_type)
260
+ repo_dir = repo_dir or sys.current_dir()
261
+ assert(type(repo_dir) == "string", "git.fetch_ref: Argument 'repo_dir' is not a string.")
262
+ assert(type(git_repo_url) == "string", "git.fetch_ref: Argument 'git_repo_url' is not a string.")
263
+ assert(type(ref_name) == "string", "git.fetch_ref: Argument 'ref_name' is not a string.")
264
+ assert(type(ref_type) == "string", "git.fetch_ref: Argument 'ref_type' is not a string.")
265
+ assert(ref_type == "tag" or ref_type == "head", "git.get_remote_refs: Argument 'ref_type' is not \"tag\" or \"head\".")
266
+ repo_dir = sys.abs_path(repo_dir)
267
+
268
+ local refstring = "refs/" .. ref_type .. "s/" .. ref_name
269
+
270
+ local suppress_fetch_progress = not cfg.debug
271
+ local ok, repo_or_err = pcall(git.repo.open, repo_dir)
272
+ if not ok then return nil, "Error when opening the git repository '" .. repo_dir .. "': " .. repo_or_err end
273
+
274
+ local ok, pack_or_err, sha = pcall(git.protocol.fetch, git_repo_url, repo_or_err, refstring, suppress_fetch_progress)
275
+ if not ok then return nil, "Error when fetching ref '" .. refstring .. "' from git repository '" .. git_repo_url .. "': " .. pack_or_err end
276
+
277
+ repo_or_err:close()
278
+ pack_or_err:close()
279
+
280
+ return sha
281
+ end
282
+
283
+ -- Fetch given 'tag_name' from the remote 'git_repo_url' to the local repository
284
+ -- 'repo_dir' and save it as a tag with the same 'tag_name'.
285
+ function fetch_tag(repo_dir, git_repo_url, tag_name)
286
+ return fetch_ref(repo_dir, git_repo_url, tag_name, "tag")
287
+ end
288
+
289
+ -- Fetch given 'branch_name' from the remote 'git_repo_url' to the local repository
290
+ -- 'repo_dir' and save it as a branch with the same 'branch_name'.
291
+ function fetch_branch(repo_dir, git_repo_url, branch_name)
292
+ return fetch_ref(repo_dir, git_repo_url, branch_name, "head")
293
+ end
294
+
295
+ -- Create the git repository and return the repo object (which can be used in checkout_sha etc.)
296
+ -- If the 'dir' exists, it's deleted prior to creating the git repository.
297
+ function create_repo(dir)
298
+ assert(type(dir) == "string", "git.create_repo: Argument 'dir' is not a string.")
299
+
300
+ if sys.exists(dir) then sys.delete(dir) end
301
+
302
+ local ok, repo_or_err = pcall(git.repo.create, dir)
303
+ if not ok then return nil, "Error when creating the git repository '" .. dir .. "': " .. repo_or_err end
304
+
305
+ repo_or_err:close()
306
+ return true
307
+ end
@@ -0,0 +1,278 @@
1
+ -- main API of LuaDist
2
+
3
+ module ("dist", package.seeall)
4
+
5
+ local cfg = require "dist.config"
6
+ local depends = require "dist.depends"
7
+ local git = require "dist.git"
8
+ local sys = require "dist.sys"
9
+ local package = require "dist.package"
10
+ local mf = require "dist.manifest"
11
+
12
+ -- Return the deployment directory.
13
+ function get_deploy_dir()
14
+ return sys.abs_path(cfg.root_dir)
15
+ end
16
+
17
+ -- Return packages deployed in 'deploy_dir' also with their provides.
18
+ function get_deployed(deploy_dir)
19
+ deploy_dir = deploy_dir or cfg.root_dir
20
+ assert(type(deploy_dir) == "string", "dist.get_deployed: Argument 'deploy_dir' is not a string.")
21
+ deploy_dir = sys.abs_path(deploy_dir)
22
+
23
+ local deployed = depends.get_installed(deploy_dir)
24
+ local provided = {}
25
+
26
+ for _, pkg in pairs(deployed) do
27
+ for _, provided_pkg in pairs(depends.get_provides(pkg)) do
28
+ provided_pkg.provided_by = pkg.name .. "-" .. pkg.version
29
+ table.insert(provided, provided_pkg)
30
+ end
31
+ end
32
+
33
+ for _, provided_pkg in pairs(provided) do
34
+ table.insert(deployed, provided_pkg)
35
+ end
36
+
37
+ deployed = depends.sort_by_names(deployed)
38
+ return deployed
39
+ end
40
+
41
+ -- Download new 'manifest_file' from repository and returns it.
42
+ -- Return nil and error message on error.
43
+ function update_manifest(deploy_dir)
44
+ deploy_dir = deploy_dir or cfg.root_dir
45
+ assert(type(deploy_dir) == "string", "dist.update_manifest: Argument 'deploy_dir' is not a string.")
46
+ deploy_dir = sys.abs_path(deploy_dir)
47
+
48
+ -- TODO: use 'deploy_dir' argument in manifest functions
49
+
50
+ -- retrieve the new manifest (forcing no cache use)
51
+ local manifest, err = mf.get_manifest(nil, true)
52
+
53
+ if manifest then
54
+ return manifest
55
+ else
56
+ return nil, err
57
+ end
58
+ end
59
+
60
+ -- Install 'package_names' to 'deploy_dir', using optional CMake 'variables'.
61
+ function install(package_names, deploy_dir, variables)
62
+ if not package_names then return true end
63
+ deploy_dir = deploy_dir or cfg.root_dir
64
+ if type(package_names) == "string" then package_names = {package_names} end
65
+
66
+ assert(type(package_names) == "table", "dist.install: Argument 'package_names' is not a table or string.")
67
+ assert(type(deploy_dir) == "string", "dist.install: Argument 'deploy_dir' is not a string.")
68
+ deploy_dir = sys.abs_path(deploy_dir)
69
+
70
+ -- find installed packages
71
+ local installed = depends.get_installed(deploy_dir)
72
+
73
+ -- get manifest
74
+ local manifest, err = mf.get_manifest()
75
+ if not manifest then return nil, "Error getting manifest: " .. err end
76
+
77
+ -- resolve dependencies
78
+ local dependencies, err = depends.get_depends(package_names, installed, manifest, false, false, deploy_dir)
79
+ if err then return nil, err end
80
+ if #dependencies == 0 then return nil, "No packages to install." end
81
+
82
+ -- fetch the packages from repository
83
+ local dirs, err = package.fetch_pkgs(dependencies, sys.make_path(deploy_dir, cfg.temp_dir))
84
+ if not dirs then return nil, err end
85
+
86
+ -- install fetched packages
87
+ for _, dir in pairs(dirs) do
88
+ ok, err = package.install_pkg(dir, deploy_dir, variables, false)
89
+ if not ok then return nil, err end
90
+ end
91
+
92
+ return true
93
+ end
94
+
95
+ -- Manually deploy packages from 'package_paths' to 'deploy_dir', using optional
96
+ -- CMake 'variables'. The 'package_paths' are preserved (will not be deleted).
97
+ function make(deploy_dir, package_paths, variables)
98
+ deploy_dir = deploy_dir or cfg.root_dir
99
+ package_paths = package_paths or {}
100
+
101
+ assert(type(deploy_dir) == "string", "dist.make: Argument 'deploy_dir' is not a string.")
102
+ assert(type(package_paths) == "table", "dist.make: Argument 'package_paths' is not a table.")
103
+ deploy_dir = sys.abs_path(deploy_dir)
104
+
105
+ local ok, err
106
+ for _, path in pairs(package_paths) do
107
+ ok, err = package.install_pkg(sys.abs_path(path), deploy_dir, variables, true)
108
+ if not ok then return nil, err end
109
+ end
110
+ return ok
111
+ end
112
+
113
+ -- Remove 'package_names' from 'deploy_dir' and return the number of removed
114
+ -- packages.
115
+ function remove(package_names, deploy_dir)
116
+ deploy_dir = deploy_dir or cfg.root_dir
117
+ if type(package_names) == "string" then package_names = {package_names} end
118
+
119
+ assert(type(package_names) == "table", "dist.remove: Argument 'package_names' is not a string or table.")
120
+ assert(type(deploy_dir) == "string", "dist.remove: Argument 'deploy_dir' is not a string.")
121
+ deploy_dir = sys.abs_path(deploy_dir)
122
+
123
+ local pkgs_to_remove = {}
124
+ local installed = depends.get_installed(deploy_dir)
125
+
126
+ -- find packages to remove
127
+ if #package_names == 0 then
128
+ pkgs_to_remove = installed
129
+ else
130
+ pkgs_to_remove = depends.find_packages(package_names, installed)
131
+ end
132
+
133
+ -- remove them
134
+ for _, pkg in pairs(pkgs_to_remove) do
135
+ local pkg_distinfo_dir = sys.make_path(cfg.distinfos_dir, pkg.name .. "-" .. pkg.version)
136
+ local ok, err = package.remove_pkg(pkg_distinfo_dir, deploy_dir)
137
+ if not ok then return nil, err end
138
+ end
139
+
140
+ return #pkgs_to_remove
141
+ end
142
+
143
+ -- Download 'pkg_names' to 'fetch_dir'.
144
+ function fetch(pkg_names, fetch_dir)
145
+ fetch_dir = fetch_dir or sys.current_dir()
146
+ assert(type(pkg_names) == "table", "dist.fetch: Argument 'pkg_names' is not a string or table.")
147
+ assert(type(fetch_dir) == "string", "dist.fetch: Argument 'fetch_dir' is not a string.")
148
+ fetch_dir = sys.abs_path(fetch_dir)
149
+
150
+ local manifest = mf.get_manifest()
151
+
152
+ local pkgs_to_fetch = {}
153
+
154
+ for _, pkg_name in pairs(pkg_names) do
155
+
156
+ -- retrieve available versions
157
+ local versions, err = package.retrieve_versions(pkg_name, manifest)
158
+ if not versions then return nil, err end
159
+ for _, version in pairs(versions) do
160
+ table.insert(manifest, version)
161
+ end
162
+
163
+ local packages = depends.find_packages(pkg_name, manifest)
164
+ if #packages == 0 then return nil, "No packages found for '" .. pkg_name .. "'." end
165
+
166
+ packages = depends.sort_by_versions(packages)
167
+ table.insert(pkgs_to_fetch, packages[1])
168
+ end
169
+
170
+ local ok, err = package.fetch_pkgs(pkgs_to_fetch, fetch_dir)
171
+
172
+ if not ok then
173
+ return nil, err
174
+ else
175
+ return ok
176
+ end
177
+ end
178
+
179
+ -- Upload binary version of given modules installed in the specified
180
+ -- 'deploy_dir' to the repository specified by provided base url.
181
+ -- Return the number of uploaded packages.
182
+ --
183
+ -- Organization of uploaded modules and their repositories is subject
184
+ -- to the following conventions:
185
+ -- - destination repository is: 'DEST_GIT_BASE_URL/MODULE_NAME'
186
+ -- - module will be uploaded to the branch: 'ARCH-TYPE' according
187
+ -- to the arch and type of the user's machine
188
+ -- - the module will be tagged as: 'VERSION-ARCH-TYPE' (if the tag already
189
+ -- exists, it will be overwritten)
190
+ --
191
+ -- E.g. assume that the module 'lua-5.1.4' is installed on the 32bit Linux
192
+ -- system (Linux-i686). When this function is called with the module name
193
+ -- 'lua' and base url 'git@github.com:LuaDist', then the binary version
194
+ -- of the module 'lua', that is installed on the machine, will be uploaded
195
+ -- to the branch 'Linux-i686' of the repository 'git@github.com:LuaDist/lua.git'
196
+ -- and tagged as '5.1.4-Linux-i686'.
197
+ function upload_modules(deploy_dir, module_names, dest_git_base_url)
198
+ deploy_dir = deploy_dir or cfg.root_dir
199
+ if type(module_names) == "string" then module_names = {module_names} end
200
+ assert(type(deploy_dir) == "string", "dist.upload_module: Argument 'deploy_dir' is not a string.")
201
+ assert(type(module_names) == "table", "dist.upload_module: Argument 'module_name' is not a string or table.")
202
+ assert(type(dest_git_base_url) == "string", "dist.upload_module: Argument 'dest_git_base_url' is not a string.")
203
+ deploy_dir = sys.abs_path(deploy_dir)
204
+
205
+ local modules_to_upload = {}
206
+ local installed = depends.get_installed(deploy_dir)
207
+
208
+ -- find modules to upload
209
+ if #module_names == 0 then
210
+ modules_to_upload = installed
211
+ else
212
+ modules_to_upload = depends.find_packages(module_names, installed)
213
+ end
214
+
215
+ for _, installed_module in pairs(modules_to_upload) do
216
+
217
+ -- set names
218
+ local branch_name = cfg.arch .. "-" .. cfg.type
219
+ local tag_name = installed_module.version .. "-" .. branch_name
220
+ local full_name = installed_module.name .. "-" .. tag_name
221
+ local tmp_dir = sys.make_path(deploy_dir, cfg.temp_dir, full_name .. "-to-upload")
222
+ local dest_git_url = dest_git_base_url .. "/" .. installed_module.name .. ".git"
223
+ local distinfo_file = sys.make_path(deploy_dir, cfg.distinfos_dir, installed_module.name .. "-" .. installed_module.version, "dist.info")
224
+
225
+ -- create temporary directory (delete previous if already exists)
226
+ if sys.exists(tmp_dir) then sys.delete(tmp_dir) end
227
+ local ok, err = sys.make_dir(tmp_dir)
228
+ if not ok then return nil, err end
229
+
230
+ -- copy the module files for all enabled components
231
+ for _, component in ipairs(cfg.components) do
232
+ if installed_module.files[component] then
233
+ for _, file in ipairs(installed_module.files[component]) do
234
+ local file_path = sys.make_path(deploy_dir, file)
235
+ local dest_dir = sys.parent_dir(sys.make_path(tmp_dir, file))
236
+ if sys.is_file(file_path) then
237
+ sys.make_dir(dest_dir)
238
+ sys.copy(file_path, dest_dir)
239
+ end
240
+ end
241
+ end
242
+ end
243
+
244
+ -- add module's dist.info file
245
+ sys.copy(distinfo_file, tmp_dir)
246
+
247
+ -- create git repo
248
+ ok, err = git.init(tmp_dir)
249
+ if not ok then return nil, "Error initializing empty git repository in '" .. tmp_dir .. "': " .. err end
250
+
251
+ -- add all files
252
+ ok, err = git.add_all(tmp_dir)
253
+ if not ok then return nil, "Error adding all files to the git index in '" .. tmp_dir .. "': " .. err end
254
+
255
+ -- create commit
256
+ ok, err = git.commit("[luadist-git] add " .. full_name, tmp_dir)
257
+ if not ok then return nil, "Error commiting changes in '" .. tmp_dir .. "': " .. err end
258
+
259
+ -- rename branch
260
+ ok, err = git.rename_branch("master", branch_name, tmp_dir)
261
+ if not ok then return nil, "Error renaming branch 'master' to '" .. branch_name .. "' in '" .. tmp_dir .. "': " .. err end
262
+
263
+ -- create tag
264
+ ok, err = git.create_tag(tmp_dir, tag_name)
265
+ if not ok then return nil, "Error creating tag '" .. tag_name .. "' in '" .. tmp_dir .. "': " .. err end
266
+
267
+ print("Uploading " .. full_name .. " to " .. dest_git_url .. "...")
268
+
269
+ -- push to the repository
270
+ ok, err = git.push_ref(tmp_dir, branch_name, dest_git_url, true)
271
+ if not ok then return nil, "Error when pushing branch '" .. branch_name .. "' and tag '" .. tag_name .. "' to '" .. dest_git_url .. "': " .. err end
272
+
273
+ -- delete temporary directory (if not in debug mode)
274
+ if not cfg.debug then sys.delete(tmp_dir) end
275
+ end
276
+
277
+ return #modules_to_upload
278
+ end