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,88 @@
1
+
2
+ --- Unix implementation of filesystem and platform abstractions.
3
+
4
+ local assert, type, table, io, package, math, os, ipairs =
5
+ assert, type, table, io, package, math, os, ipairs
6
+
7
+ module("luarocks.fs.unix", package.seeall)
8
+
9
+ local fs = require("luarocks.fs")
10
+
11
+ local cfg = require("luarocks.cfg")
12
+ local dir = require("luarocks.dir")
13
+ local fs = require("luarocks.fs")
14
+ local util = require("luarocks.util")
15
+
16
+ math.randomseed(os.time())
17
+
18
+ --- Return an absolute pathname from a potentially relative one.
19
+ -- @param pathname string: pathname to convert.
20
+ -- @param relative_to string or nil: path to prepend when making
21
+ -- pathname absolute, or the current dir in the dir stack if
22
+ -- not given.
23
+ -- @return string: The pathname converted to absolute.
24
+ function absolute_name(pathname, relative_to)
25
+ assert(type(pathname) == "string")
26
+ assert(type(relative_to) == "string" or not relative_to)
27
+
28
+ relative_to = relative_to or fs.current_dir()
29
+ if pathname:sub(1,1) == "/" then
30
+ return pathname
31
+ else
32
+ return relative_to .. "/" .. pathname
33
+ end
34
+ end
35
+
36
+ --- Create a wrapper to make a script executable from the command-line.
37
+ -- @param file string: Pathname of script to be made executable.
38
+ -- @param dest string: Directory where to put the wrapper.
39
+ -- @return boolean or (nil, string): True if succeeded, or nil and
40
+ -- an error message.
41
+ function wrap_script(file, dest)
42
+ assert(type(file) == "string")
43
+ assert(type(dest) == "string")
44
+
45
+ local base = dir.base_name(file)
46
+ local wrapname = fs.is_dir(dest) and dest.."/"..base or dest
47
+ local wrapper = io.open(wrapname, "w")
48
+ if not wrapper then
49
+ return nil, "Could not open "..wrapname.." for writing."
50
+ end
51
+ wrapper:write("#!/bin/sh\n\n")
52
+ wrapper:write('LUA_PATH="'..package.path..';$LUA_PATH"\n')
53
+ wrapper:write('LUA_CPATH="'..package.cpath..';$LUA_CPATH"\n')
54
+ wrapper:write('export LUA_PATH LUA_CPATH\n')
55
+ wrapper:write('exec "'..dir.path(cfg.variables["LUA_BINDIR"], cfg.lua_interpreter)..'" -lluarocks.loader "'..file..'" "$@"\n')
56
+ wrapper:close()
57
+ if fs.chmod(wrapname, "0755") then
58
+ return true
59
+ else
60
+ return nil, "Could not make "..wrapname.." executable."
61
+ end
62
+ end
63
+
64
+ --- Check if a file (typically inside path.bin_dir) is an actual binary
65
+ -- or a Lua wrapper.
66
+ -- @param filename string: the file name with full path.
67
+ -- @return boolean: returns true if file is an actual binary
68
+ -- (or if it couldn't check) or false if it is a Lua wrapper.
69
+ function is_actual_binary(filename)
70
+ if filename:match("%.lua$") then
71
+ return false
72
+ end
73
+ local file = io.open(filename)
74
+ if not file then
75
+ return true
76
+ end
77
+ local first = file:read(2)
78
+ file:close()
79
+ if not first then
80
+ util.printerr("Warning: could not read "..filename)
81
+ return true
82
+ end
83
+ return first ~= "#!"
84
+ end
85
+
86
+ function copy_binary(filename, dest)
87
+ return fs.copy(filename, dest, "0755")
88
+ end
@@ -0,0 +1,325 @@
1
+
2
+ --- fs operations implemented with third-party tools for Unix platform abstractions.
3
+ module("luarocks.fs.unix.tools", package.seeall)
4
+
5
+ local fs = require("luarocks.fs")
6
+ local dir = require("luarocks.dir")
7
+ local cfg = require("luarocks.cfg")
8
+
9
+ local dir_stack = {}
10
+
11
+ local vars = cfg.variables
12
+
13
+ --- Run the given command.
14
+ -- The command is executed in the current directory in the directory stack.
15
+ -- @param cmd string: No quoting/escaping is applied to the command.
16
+ -- @return boolean: true if command succeeds (status code 0), false
17
+ -- otherwise.
18
+ function execute_string(cmd)
19
+ local actual_cmd = "cd " .. fs.Q(fs.current_dir()) .. " && " .. cmd
20
+ local code = os.execute(actual_cmd)
21
+ if code == 0 or code == true then
22
+ return true
23
+ else
24
+ return false
25
+ end
26
+ end
27
+
28
+ --- Obtain current directory.
29
+ -- Uses the module's internal directory stack.
30
+ -- @return string: the absolute pathname of the current directory.
31
+ function current_dir()
32
+ local pipe = io.popen(vars.PWD)
33
+ local current = pipe:read("*l")
34
+ pipe:close()
35
+ for _, directory in ipairs(dir_stack) do
36
+ current = fs.absolute_name(directory, current)
37
+ end
38
+ return current
39
+ end
40
+
41
+ --- Change the current directory.
42
+ -- Uses the module's internal directory stack. This does not have exact
43
+ -- semantics of chdir, as it does not handle errors the same way,
44
+ -- but works well for our purposes for now.
45
+ -- @param directory string: The directory to switch to.
46
+ function change_dir(directory)
47
+ assert(type(directory) == "string")
48
+ table.insert(dir_stack, directory)
49
+ end
50
+
51
+ --- Change directory to root.
52
+ -- Allows leaving a directory (e.g. for deleting it) in
53
+ -- a crossplatform way.
54
+ function change_dir_to_root()
55
+ table.insert(dir_stack, "/")
56
+ end
57
+
58
+ --- Change working directory to the previous in the directory stack.
59
+ function pop_dir()
60
+ local directory = table.remove(dir_stack)
61
+ return directory ~= nil
62
+ end
63
+
64
+ --- Create a directory if it does not already exist.
65
+ -- If any of the higher levels in the path name does not exist
66
+ -- too, they are created as well.
67
+ -- @param directory string: pathname of directory to create.
68
+ -- @return boolean: true on success, false on failure.
69
+ function make_dir(directory)
70
+ assert(directory)
71
+ return fs.execute(vars.MKDIR.." -p", directory)
72
+ end
73
+
74
+ --- Remove a directory if it is empty.
75
+ -- Does not return errors (for example, if directory is not empty or
76
+ -- if already does not exist)
77
+ -- @param directory string: pathname of directory to remove.
78
+ function remove_dir_if_empty(directory)
79
+ assert(directory)
80
+ fs.execute_string(vars.RMDIR.." "..fs.Q(directory).." 1> /dev/null 2> /dev/null")
81
+ end
82
+
83
+ --- Remove a directory if it is empty.
84
+ -- Does not return errors (for example, if directory is not empty or
85
+ -- if already does not exist)
86
+ -- @param directory string: pathname of directory to remove.
87
+ function remove_dir_tree_if_empty(directory)
88
+ assert(directory)
89
+ fs.execute_string(vars.RMDIR.." -p "..fs.Q(directory).." 1> /dev/null 2> /dev/null")
90
+ end
91
+
92
+ --- Copy a file.
93
+ -- @param src string: Pathname of source
94
+ -- @param dest string: Pathname of destination
95
+ -- @param perm string or nil: Permissions for destination file,
96
+ -- @return boolean or (boolean, string): true on success, false on failure,
97
+ -- plus an error message.
98
+ function copy(src, dest, perm)
99
+ assert(src and dest)
100
+ if fs.execute(vars.CP, src, dest) then
101
+ if perm then
102
+ if fs.is_dir(dest) then
103
+ dest = dir.path(dest, dir.base_name(src))
104
+ end
105
+ if fs.chmod(dest, perm) then
106
+ return true
107
+ else
108
+ return false, "Failed setting permissions of "..dest
109
+ end
110
+ end
111
+ return true
112
+ else
113
+ return false, "Failed copying "..src.." to "..dest
114
+ end
115
+ end
116
+
117
+ --- Recursively copy the contents of a directory.
118
+ -- @param src string: Pathname of source
119
+ -- @param dest string: Pathname of destination
120
+ -- @return boolean or (boolean, string): true on success, false on failure,
121
+ -- plus an error message.
122
+ function copy_contents(src, dest)
123
+ assert(src and dest)
124
+ if fs.execute_string(vars.CP.." -pPR "..fs.Q(src).."/* "..fs.Q(dest).." 1> /dev/null 2>/dev/null") then
125
+ return true
126
+ else
127
+ return false, "Failed copying "..src.." to "..dest
128
+ end
129
+ end
130
+ --- Delete a file or a directory and all its contents.
131
+ -- For safety, this only accepts absolute paths.
132
+ -- @param arg string: Pathname of source
133
+ -- @return boolean: true on success, false on failure.
134
+ function delete(arg)
135
+ assert(arg)
136
+ assert(arg:sub(1,1) == "/")
137
+ return fs.execute_string(vars.RM.." -rf " .. fs.Q(arg) .. " 1> /dev/null 2>/dev/null")
138
+ end
139
+
140
+ --- List the contents of a directory.
141
+ -- @param at string or nil: directory to list (will be the current
142
+ -- directory if none is given).
143
+ -- @return table: an array of strings with the filenames representing
144
+ -- the contents of a directory.
145
+ function list_dir(at)
146
+ assert(type(at) == "string" or not at)
147
+ if not at then
148
+ at = fs.current_dir()
149
+ end
150
+ if not fs.is_dir(at) then
151
+ return {}
152
+ end
153
+ local result = {}
154
+ local pipe = io.popen("cd "..fs.Q(at).." && "..vars.LS)
155
+ for file in pipe:lines() do
156
+ table.insert(result, file)
157
+ end
158
+ pipe:close()
159
+ return result
160
+ end
161
+
162
+ --- Recursively scan the contents of a directory.
163
+ -- @param at string or nil: directory to scan (will be the current
164
+ -- directory if none is given).
165
+ -- @return table: an array of strings with the filenames representing
166
+ -- the contents of a directory.
167
+ function find(at)
168
+ assert(type(at) == "string" or not at)
169
+ if not at then
170
+ at = fs.current_dir()
171
+ end
172
+ if not fs.is_dir(at) then
173
+ return {}
174
+ end
175
+ local result = {}
176
+ local pipe = io.popen("cd "..fs.Q(at).." && "..vars.FIND.." * 2>/dev/null")
177
+ for file in pipe:lines() do
178
+ table.insert(result, file)
179
+ end
180
+ pipe:close()
181
+ return result
182
+ end
183
+
184
+ --- Compress files in a .zip archive.
185
+ -- @param zipfile string: pathname of .zip archive to be created.
186
+ -- @param ... Filenames to be stored in the archive are given as
187
+ -- additional arguments.
188
+ -- @return boolean: true on success, false on failure.
189
+ function zip(zipfile, ...)
190
+ return fs.execute(vars.ZIP.." -r", zipfile, ...)
191
+ end
192
+
193
+ --- Uncompress files from a .zip archive.
194
+ -- @param zipfile string: pathname of .zip archive to be extracted.
195
+ -- @return boolean: true on success, false on failure.
196
+ function unzip(zipfile)
197
+ assert(zipfile)
198
+ return fs.execute(vars.UNZIP, zipfile)
199
+ end
200
+
201
+ --- Test for existance of a file.
202
+ -- @param file string: filename to test
203
+ -- @return boolean: true if file exists, false otherwise.
204
+ function exists(file)
205
+ assert(file)
206
+ return fs.execute(vars.TEST, "-r", file)
207
+ end
208
+
209
+ --- Test is file/directory is writable.
210
+ -- @param file string: filename to test
211
+ -- @return boolean: true if file exists, false otherwise.
212
+ function is_writable(file)
213
+ assert(file)
214
+ return fs.execute(vars.TEST, "-w", file)
215
+ end
216
+
217
+ --- Test is pathname is a directory.
218
+ -- @param file string: pathname to test
219
+ -- @return boolean: true if it is a directory, false otherwise.
220
+ function is_dir(file)
221
+ assert(file)
222
+ return fs.execute(vars.TEST, "-d", file)
223
+ end
224
+
225
+ --- Test is pathname is a regular file.
226
+ -- @param file string: pathname to test
227
+ -- @return boolean: true if it is a regular file, false otherwise.
228
+ function is_file(file)
229
+ assert(file)
230
+ return fs.execute(vars.TEST, "-f", file)
231
+ end
232
+
233
+ --- Download a remote file.
234
+ -- @param url string: URL to be fetched.
235
+ -- @param filename string or nil: this function attempts to detect the
236
+ -- resulting local filename of the remote file as the basename of the URL;
237
+ -- if that is not correct (due to a redirection, for example), the local
238
+ -- filename can be given explicitly as this second argument.
239
+ -- @return boolean: true on success, false on failure.
240
+ function download(url, filename)
241
+ assert(type(url) == "string")
242
+ assert(type(filename) == "string" or not filename)
243
+
244
+ if cfg.downloader == "wget" then
245
+ local wget_cmd = vars.WGET.." --no-check-certificate --no-cache --user-agent="..cfg.user_agent.." --quiet --continue "
246
+ if filename then
247
+ return fs.execute(wget_cmd.." --output-document ", filename, url)
248
+ else
249
+ return fs.execute(wget_cmd, url)
250
+ end
251
+ elseif cfg.downloader == "curl" then
252
+ filename = filename or dir.base_name(url)
253
+ return fs.execute_string(vars.CURL.." -L --user-agent "..cfg.user_agent.." "..fs.Q(url).." 2> /dev/null 1> "..fs.Q(filename))
254
+ end
255
+ end
256
+
257
+ function chmod(pathname, mode)
258
+ if mode then
259
+ return fs.execute(vars.CHMOD, mode, pathname)
260
+ else
261
+ return false
262
+ end
263
+ end
264
+
265
+ --- Apply a patch.
266
+ -- @param patchname string: The filename of the patch.
267
+ function apply_patch(patchname)
268
+ return fs.execute(vars.PATCH.." -p1 -f -i ", patchname)
269
+ end
270
+
271
+ --- Unpack an archive.
272
+ -- Extract the contents of an archive, detecting its format by
273
+ -- filename extension.
274
+ -- @param archive string: Filename of archive.
275
+ -- @return boolean or (boolean, string): true on success, false and an error message on failure.
276
+ function unpack_archive(archive)
277
+ assert(type(archive) == "string")
278
+
279
+ local ok
280
+ if archive:match("%.tar%.gz$") or archive:match("%.tgz$") then
281
+ -- ok = fs.execute("tar zxvpf ", archive)
282
+ ok = fs.execute_string(vars.GUNZIP.." -c "..archive.."|"..vars.TAR.." -xf -")
283
+ elseif archive:match("%.tar%.bz2$") then
284
+ -- ok = fs.execute("tar jxvpf ", archive)
285
+ ok = fs.execute_string(vars.BUNZIP2.." -c "..archive.."|tar -xf -")
286
+ elseif archive:match("%.zip$") then
287
+ ok = fs.execute(vars.UNZIP, archive)
288
+ elseif archive:match("%.lua$") or archive:match("%.c$") then
289
+ -- Ignore .lua and .c files; they don't need to be extracted.
290
+ return true
291
+ else
292
+ local ext = archive:match(".*(%..*)")
293
+ return false, "Unrecognized filename extension "..(ext or "")
294
+ end
295
+ if not ok then
296
+ return false, "Failed extracting "..archive
297
+ end
298
+ return true
299
+ end
300
+
301
+ local md5_cmd = {
302
+ md5sum = vars.MD5SUM,
303
+ openssl = vars.OPENSSL.." md5",
304
+ md5 = vars.MD5,
305
+ }
306
+
307
+ --- Get the MD5 checksum for a file.
308
+ -- @param file string: The file to be computed.
309
+ -- @return string: The MD5 checksum
310
+ function get_md5(file)
311
+ local cmd = md5_cmd[cfg.md5checker]
312
+ if not cmd then return nil end
313
+ local pipe = io.popen(cmd.." "..fs.absolute_name(file))
314
+ local computed = pipe:read("*a")
315
+ pipe:close()
316
+ if not computed then return nil end
317
+ return computed:match("("..("%x"):rep(32)..")")
318
+ end
319
+
320
+ function get_permissions(filename)
321
+ local pipe = io.popen(vars.STAT.." "..vars.STATFLAG.." "..fs.Q(filename))
322
+ local ret = pipe:read("*l")
323
+ pipe:close()
324
+ return ret
325
+ end
@@ -0,0 +1,107 @@
1
+ --- Windows implementation of filesystem and platform abstractions.
2
+ -- Download http://unxutils.sourceforge.net/ for Windows GNU utilities
3
+ -- used by this module.
4
+ module("luarocks.fs.win32", package.seeall)
5
+
6
+ local fs = require("luarocks.fs")
7
+
8
+ local cfg = require("luarocks.cfg")
9
+ local dir = require("luarocks.dir")
10
+
11
+ --- Quote argument for shell processing. Fixes paths on Windows.
12
+ -- Adds single quotes and escapes.
13
+ -- @param arg string: Unquoted argument.
14
+ -- @return string: Quoted argument.
15
+ function Q(arg)
16
+ assert(type(arg) == "string")
17
+ -- Quote DIR for Windows
18
+ if arg:match("^[%.a-zA-Z]?:?[\\/]") then
19
+ return '"' .. arg:gsub("/", "\\"):gsub('"', '\\"') .. '"'
20
+ end
21
+ -- URLs and anything else
22
+ return '"' .. arg:gsub('"', '\\"') .. '"'
23
+ end
24
+
25
+ --- Return an absolute pathname from a potentially relative one.
26
+ -- @param pathname string: pathname to convert.
27
+ -- @param relative_to string or nil: path to prepend when making
28
+ -- pathname absolute, or the current dir in the dir stack if
29
+ -- not given.
30
+ -- @return string: The pathname converted to absolute.
31
+ function absolute_name(pathname, relative_to)
32
+ assert(type(pathname) == "string")
33
+ assert(type(relative_to) == "string" or not relative_to)
34
+
35
+ relative_to = relative_to or fs.current_dir()
36
+ -- FIXME I'm not sure this first \\ should be there at all.
37
+ -- What are the Windows rules for drive letters?
38
+ if pathname:match("^[\\.a-zA-Z]?:?[\\/]") then
39
+ return pathname
40
+ else
41
+ return relative_to .. "/" .. pathname
42
+ end
43
+ end
44
+
45
+ --- Create a wrapper to make a script executable from the command-line.
46
+ -- @param file string: Pathname of script to be made executable.
47
+ -- @param dest string: Directory where to put the wrapper.
48
+ -- @return boolean or (nil, string): True if succeeded, or nil and
49
+ -- an error message.
50
+ function wrap_script(file, dest)
51
+ assert(type(file) == "string")
52
+ assert(type(dest) == "string")
53
+
54
+ local base = dir.base_name(file)
55
+ local wrapname = fs.is_dir(dest) and dest.."/"..base or dest
56
+ wrapname = wrapname..".bat"
57
+ local wrapper = io.open(wrapname, "w")
58
+ if not wrapper then
59
+ return nil, "Could not open "..wrapname.." for writing."
60
+ end
61
+ wrapper:write("@echo off\n")
62
+ wrapper:write("setlocal\n")
63
+ wrapper:write('set LUA_PATH='..package.path..";%LUA_PATH%\n")
64
+ wrapper:write('set LUA_CPATH='..package.cpath..";%LUA_CPATH%\n")
65
+ wrapper:write('"'..dir.path(cfg.variables["LUA_BINDIR"], cfg.lua_interpreter)..'" -lluarocks.loader "'..file..'" %*\n')
66
+ wrapper:write("endlocal\n")
67
+ wrapper:close()
68
+ return true
69
+ end
70
+
71
+ function is_actual_binary(name)
72
+ name = name:lower()
73
+ if name:match("%.bat$") or name:match("%.exe$") then
74
+ return true
75
+ end
76
+ return false
77
+ end
78
+
79
+ function copy_binary(filename, dest)
80
+ local ok, err = fs.copy(filename, dest)
81
+ if not ok then
82
+ return nil, err
83
+ end
84
+ local exe_pattern = "%.[Ee][Xx][Ee]$"
85
+ local base = dir.base_name(filename)
86
+ local dest = dir.dir_name(dest)
87
+ if base:match(exe_pattern) then
88
+ base = base:gsub(exe_pattern, ".lua")
89
+ local helpname = dest.."/"..base
90
+ local helper = io.open(helpname, "w")
91
+ if not helper then
92
+ return nil, "Could not open "..helpname.." for writing."
93
+ end
94
+ helper:write('package.path=\"'..package.path:gsub("\\","\\\\")..';\"..package.path\n')
95
+ helper:write('package.cpath=\"'..package.path:gsub("\\","\\\\")..';\"..package.cpath\n')
96
+ helper:close()
97
+ end
98
+ return true
99
+ end
100
+
101
+ function chmod(filename, mode)
102
+ return true
103
+ end
104
+
105
+ function get_permissions(filename)
106
+ return ""
107
+ end