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.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +69 -0
- data/Rakefile +1 -0
- data/lib/rufus/lua/win.rb +18 -0
- data/lib/rufus/lua/win/version.rb +7 -0
- data/rufus-lua-win.gemspec +23 -0
- data/vendor/lua/bin/liblua.dll +0 -0
- data/vendor/lua/lib/lua/LuaXml.lua +119 -0
- data/vendor/lua/lib/lua/alien.lua +250 -0
- data/vendor/lua/lib/lua/alien/core.dll +0 -0
- data/vendor/lua/lib/lua/alien/struct.dll +0 -0
- data/vendor/lua/lib/lua/base.lua +536 -0
- data/vendor/lua/lib/lua/bin.lua +20 -0
- data/vendor/lua/lib/lua/bit.dll +0 -0
- data/vendor/lua/lib/lua/cdlua.dll +0 -0
- data/vendor/lua/lib/lua/cdluacontextplus.dll +0 -0
- data/vendor/lua/lib/lua/cdluagl.dll +0 -0
- data/vendor/lua/lib/lua/cdluaim.dll +0 -0
- data/vendor/lua/lib/lua/cdluapdf.dll +0 -0
- data/vendor/lua/lib/lua/copas.lua +543 -0
- data/vendor/lua/lib/lua/coxpcall.lua +57 -0
- data/vendor/lua/lib/lua/date.lua +745 -0
- data/vendor/lua/lib/lua/debug_ext.lua +84 -0
- data/vendor/lua/lib/lua/debug_init.lua +2 -0
- data/vendor/lua/lib/lua/des56.dll +0 -0
- data/vendor/lua/lib/lua/dist/config.lua +109 -0
- data/vendor/lua/lib/lua/dist/constraints.lua +271 -0
- data/vendor/lua/lib/lua/dist/depends.lua +601 -0
- data/vendor/lua/lib/lua/dist/git.lua +307 -0
- data/vendor/lua/lib/lua/dist/init.lua +278 -0
- data/vendor/lua/lib/lua/dist/manifest.lua +225 -0
- data/vendor/lua/lib/lua/dist/package.lua +583 -0
- data/vendor/lua/lib/lua/dist/sys.lua +367 -0
- data/vendor/lua/lib/lua/dist/utils.lua +130 -0
- data/vendor/lua/lib/lua/ex.dll +0 -0
- data/vendor/lua/lib/lua/fstable.lua +116 -0
- data/vendor/lua/lib/lua/getopt.lua +273 -0
- data/vendor/lua/lib/lua/git.lua +5 -0
- data/vendor/lua/lib/lua/git/core.dll +0 -0
- data/vendor/lua/lib/lua/git/objects.lua +121 -0
- data/vendor/lua/lib/lua/git/pack.lua +316 -0
- data/vendor/lua/lib/lua/git/protocol.lua +188 -0
- data/vendor/lua/lib/lua/git/repo.lua +283 -0
- data/vendor/lua/lib/lua/git/util.lua +233 -0
- data/vendor/lua/lib/lua/gzio.dll +0 -0
- data/vendor/lua/lib/lua/gzip.lua +81 -0
- data/vendor/lua/lib/lua/iconv.dll +0 -0
- data/vendor/lua/lib/lua/imlua.dll +0 -0
- data/vendor/lua/lib/lua/imlua_fftw.dll +0 -0
- data/vendor/lua/lib/lua/imlua_jp2.dll +0 -0
- data/vendor/lua/lib/lua/imlua_process.dll +0 -0
- data/vendor/lua/lib/lua/imlua_process_omp.dll +0 -0
- data/vendor/lua/lib/lua/io_ext.lua +115 -0
- data/vendor/lua/lib/lua/iuplua.dll +0 -0
- data/vendor/lua/lib/lua/iuplua_mglplot.dll +0 -0
- data/vendor/lua/lib/lua/iuplua_pplot.dll +0 -0
- data/vendor/lua/lib/lua/iupluacd.dll +0 -0
- data/vendor/lua/lib/lua/iupluacontrols.dll +0 -0
- data/vendor/lua/lib/lua/iupluagl.dll +0 -0
- data/vendor/lua/lib/lua/iupluaim.dll +0 -0
- data/vendor/lua/lib/lua/iupluaimglib.dll +0 -0
- data/vendor/lua/lib/lua/iupluatuio.dll +0 -0
- data/vendor/lua/lib/lua/lanes-keeper.lua +302 -0
- data/vendor/lua/lib/lua/lanes.lua +591 -0
- data/vendor/lua/lib/lua/lanes/core.dll +0 -0
- data/vendor/lua/lib/lua/lcs.lua +55 -0
- data/vendor/lua/lib/lua/lemock.lua +659 -0
- data/vendor/lua/lib/lua/lfs.dll +0 -0
- data/vendor/lua/lib/lua/list.lua +375 -0
- data/vendor/lua/lib/lua/logging.lua +189 -0
- data/vendor/lua/lib/lua/logging/console.lua +22 -0
- data/vendor/lua/lib/lua/logging/email.lua +44 -0
- data/vendor/lua/lib/lua/logging/file.lua +55 -0
- data/vendor/lua/lib/lua/logging/rolling_file.lua +81 -0
- data/vendor/lua/lib/lua/logging/socket.lua +35 -0
- data/vendor/lua/lib/lua/logging/sql.lua +64 -0
- data/vendor/lua/lib/lua/loop/base.lua +68 -0
- data/vendor/lua/lib/lua/loop/cached.lua +312 -0
- data/vendor/lua/lib/lua/loop/collection/MapWithArrayOfKeys.lua +64 -0
- data/vendor/lua/lib/lua/loop/collection/ObjectCache.lua +39 -0
- data/vendor/lua/lib/lua/loop/collection/OrderedSet.lua +164 -0
- data/vendor/lua/lib/lua/loop/collection/PriorityQueue.lua +86 -0
- data/vendor/lua/lib/lua/loop/collection/UnorderedArray.lua +32 -0
- data/vendor/lua/lib/lua/loop/collection/UnorderedArraySet.lua +56 -0
- data/vendor/lua/lib/lua/loop/compiler/Arguments.lua +108 -0
- data/vendor/lua/lib/lua/loop/compiler/Conditional.lua +50 -0
- data/vendor/lua/lib/lua/loop/compiler/Expression.lua +215 -0
- data/vendor/lua/lib/lua/loop/component/base.lua +221 -0
- data/vendor/lua/lib/lua/loop/component/contained.lua +71 -0
- data/vendor/lua/lib/lua/loop/component/dynamic.lua +223 -0
- data/vendor/lua/lib/lua/loop/component/intercepted.lua +354 -0
- data/vendor/lua/lib/lua/loop/component/wrapped.lua +195 -0
- data/vendor/lua/lib/lua/loop/debug/Inspector.lua +521 -0
- data/vendor/lua/lib/lua/loop/debug/Matcher.lua +192 -0
- data/vendor/lua/lib/lua/loop/debug/Verbose.lua +266 -0
- data/vendor/lua/lib/lua/loop/debug/Viewer.lua +200 -0
- data/vendor/lua/lib/lua/loop/multiple.lua +105 -0
- data/vendor/lua/lib/lua/loop/object/Exception.lua +57 -0
- data/vendor/lua/lib/lua/loop/object/Publisher.lua +43 -0
- data/vendor/lua/lib/lua/loop/object/Wrapper.lua +39 -0
- data/vendor/lua/lib/lua/loop/scoped.lua +585 -0
- data/vendor/lua/lib/lua/loop/serial/FileStream.lua +48 -0
- data/vendor/lua/lib/lua/loop/serial/Serializer.lua +291 -0
- data/vendor/lua/lib/lua/loop/serial/SocketStream.lua +51 -0
- data/vendor/lua/lib/lua/loop/serial/StringStream.lua +47 -0
- data/vendor/lua/lib/lua/loop/simple.lua +75 -0
- data/vendor/lua/lib/lua/loop/table.lua +71 -0
- data/vendor/lua/lib/lua/loop/thread/CoSocket.lua +416 -0
- data/vendor/lua/lib/lua/loop/thread/IOScheduler.lua +170 -0
- data/vendor/lua/lib/lua/loop/thread/Scheduler.lua +327 -0
- data/vendor/lua/lib/lua/loop/thread/SocketScheduler.lua +88 -0
- data/vendor/lua/lib/lua/loop/thread/Timer.lua +54 -0
- data/vendor/lua/lib/lua/lpeg.dll +0 -0
- data/vendor/lua/lib/lua/ltn12.lua +292 -0
- data/vendor/lua/lib/lua/luaXML_lib.dll +0 -0
- data/vendor/lua/lib/lua/luacurl.dll +0 -0
- data/vendor/lua/lib/lua/luadoc/config.lua +34 -0
- data/vendor/lua/lib/lua/luadoc/doclet/debug.lua +46 -0
- data/vendor/lua/lib/lua/luadoc/doclet/formatter.lua +84 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html.lua +289 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/file.lp +113 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/function.lp +64 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/index.lp +70 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/luadoc.css +286 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/menu.lp +55 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/module.lp +109 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/table.lp +15 -0
- data/vendor/lua/lib/lua/luadoc/doclet/raw.lua +12 -0
- data/vendor/lua/lib/lua/luadoc/init.lua +58 -0
- data/vendor/lua/lib/lua/luadoc/lp.lua +130 -0
- data/vendor/lua/lib/lua/luadoc/taglet/standard.lua +495 -0
- data/vendor/lua/lib/lua/luadoc/taglet/standard/tags.lua +171 -0
- data/vendor/lua/lib/lua/luadoc/util.lua +233 -0
- data/vendor/lua/lib/lua/luagl.dll +0 -0
- data/vendor/lua/lib/lua/luaglu.dll +0 -0
- data/vendor/lua/lib/lua/luaidl.lua +113 -0
- data/vendor/lua/lib/lua/luaidl/lex.lua +793 -0
- data/vendor/lua/lib/lua/luaidl/pre.lua +149 -0
- data/vendor/lua/lib/lua/luaidl/sin.lua +3631 -0
- data/vendor/lua/lib/lua/luarocks/add.lua +108 -0
- data/vendor/lua/lib/lua/luarocks/admin_remove.lua +87 -0
- data/vendor/lua/lib/lua/luarocks/build.lua +330 -0
- data/vendor/lua/lib/lua/luarocks/build/builtin.lua +253 -0
- data/vendor/lua/lib/lua/luarocks/build/cmake.lua +54 -0
- data/vendor/lua/lib/lua/luarocks/build/command.lua +32 -0
- data/vendor/lua/lib/lua/luarocks/build/make.lua +92 -0
- data/vendor/lua/lib/lua/luarocks/cache.lua +85 -0
- data/vendor/lua/lib/lua/luarocks/cfg.lua +449 -0
- data/vendor/lua/lib/lua/luarocks/command_line.lua +163 -0
- data/vendor/lua/lib/lua/luarocks/deps.lua +654 -0
- data/vendor/lua/lib/lua/luarocks/dir.lua +69 -0
- data/vendor/lua/lib/lua/luarocks/download.lua +90 -0
- data/vendor/lua/lib/lua/luarocks/fetch.lua +321 -0
- data/vendor/lua/lib/lua/luarocks/fetch/cvs.lua +44 -0
- data/vendor/lua/lib/lua/luarocks/fetch/git.lua +81 -0
- data/vendor/lua/lib/lua/luarocks/fetch/git_file.lua +17 -0
- data/vendor/lua/lib/lua/luarocks/fetch/hg.lua +54 -0
- data/vendor/lua/lib/lua/luarocks/fetch/sscm.lua +42 -0
- data/vendor/lua/lib/lua/luarocks/fetch/svn.lua +53 -0
- data/vendor/lua/lib/lua/luarocks/fs.lua +40 -0
- data/vendor/lua/lib/lua/luarocks/fs/lua.lua +676 -0
- data/vendor/lua/lib/lua/luarocks/fs/unix.lua +88 -0
- data/vendor/lua/lib/lua/luarocks/fs/unix/tools.lua +325 -0
- data/vendor/lua/lib/lua/luarocks/fs/win32.lua +107 -0
- data/vendor/lua/lib/lua/luarocks/fs/win32/tools.lua +334 -0
- data/vendor/lua/lib/lua/luarocks/help.lua +101 -0
- data/vendor/lua/lib/lua/luarocks/index.lua +172 -0
- data/vendor/lua/lib/lua/luarocks/install.lua +151 -0
- data/vendor/lua/lib/lua/luarocks/list.lua +35 -0
- data/vendor/lua/lib/lua/luarocks/loader.lua +228 -0
- data/vendor/lua/lib/lua/luarocks/make.lua +71 -0
- data/vendor/lua/lib/lua/luarocks/make_manifest.lua +34 -0
- data/vendor/lua/lib/lua/luarocks/manif.lua +360 -0
- data/vendor/lua/lib/lua/luarocks/manif_core.lua +75 -0
- data/vendor/lua/lib/lua/luarocks/new_version.lua +141 -0
- data/vendor/lua/lib/lua/luarocks/pack.lua +205 -0
- data/vendor/lua/lib/lua/luarocks/path.lua +315 -0
- data/vendor/lua/lib/lua/luarocks/persist.lua +173 -0
- data/vendor/lua/lib/lua/luarocks/refresh_cache.lua +30 -0
- data/vendor/lua/lib/lua/luarocks/remove.lua +135 -0
- data/vendor/lua/lib/lua/luarocks/rep.lua +313 -0
- data/vendor/lua/lib/lua/luarocks/require.lua +6 -0
- data/vendor/lua/lib/lua/luarocks/search.lua +399 -0
- data/vendor/lua/lib/lua/luarocks/show.lua +138 -0
- data/vendor/lua/lib/lua/luarocks/site_config.lua +23 -0
- data/vendor/lua/lib/lua/luarocks/tools/patch.lua +712 -0
- data/vendor/lua/lib/lua/luarocks/tools/tar.lua +144 -0
- data/vendor/lua/lib/lua/luarocks/tools/zip.lua +245 -0
- data/vendor/lua/lib/lua/luarocks/type_check.lua +267 -0
- data/vendor/lua/lib/lua/luarocks/unpack.lua +151 -0
- data/vendor/lua/lib/lua/luarocks/util.lua +420 -0
- data/vendor/lua/lib/lua/luarocks/validate.lua +164 -0
- data/vendor/lua/lib/lua/luars232.dll +0 -0
- data/vendor/lua/lib/lua/luasql/mysql.dll +0 -0
- data/vendor/lua/lib/lua/luasql/postgres.dll +0 -0
- data/vendor/lua/lib/lua/luasql/sqlite3.dll +0 -0
- data/vendor/lua/lib/lua/luaunit.lua +601 -0
- data/vendor/lua/lib/lua/lxp.dll +0 -0
- data/vendor/lua/lib/lua/lxp/lom.lua +60 -0
- data/vendor/lua/lib/lua/math_ext.lua +27 -0
- data/vendor/lua/lib/lua/mbox.lua +53 -0
- data/vendor/lua/lib/lua/md5.lua +19 -0
- data/vendor/lua/lib/lua/md5/core.dll +0 -0
- data/vendor/lua/lib/lua/metalua.lua +0 -0
- data/vendor/lua/lib/lua/metalua/ast_to_string.mlua +553 -0
- data/vendor/lua/lib/lua/metalua/base.lua +104 -0
- data/vendor/lua/lib/lua/metalua/bytecode.lua +0 -0
- data/vendor/lua/lib/lua/metalua/clopts.mlua +204 -0
- data/vendor/lua/lib/lua/metalua/compiler.lua +3 -0
- data/vendor/lua/lib/lua/metalua/dollar.mlua +24 -0
- data/vendor/lua/lib/lua/metalua/extension/H-runtime.mlua +216 -0
- data/vendor/lua/lib/lua/metalua/extension/H.mlua +22 -0
- data/vendor/lua/lib/lua/metalua/extension/anaphoric.mlua +54 -0
- data/vendor/lua/lib/lua/metalua/extension/clist.mlua +149 -0
- data/vendor/lua/lib/lua/metalua/extension/continue.mlua +53 -0
- data/vendor/lua/lib/lua/metalua/extension/localin.mlua +2 -0
- data/vendor/lua/lib/lua/metalua/extension/log.mlua +39 -0
- data/vendor/lua/lib/lua/metalua/extension/match.mlua +374 -0
- data/vendor/lua/lib/lua/metalua/extension/ternary.mlua +10 -0
- data/vendor/lua/lib/lua/metalua/extension/trycatch.mlua +189 -0
- data/vendor/lua/lib/lua/metalua/extension/types-runtime.mlua +159 -0
- data/vendor/lua/lib/lua/metalua/extension/types.mlua +352 -0
- data/vendor/lua/lib/lua/metalua/extension/withdo.mlua +30 -0
- data/vendor/lua/lib/lua/metalua/extension/xglobal-runtime.lua +41 -0
- data/vendor/lua/lib/lua/metalua/extension/xglobal.mlua +20 -0
- data/vendor/lua/lib/lua/metalua/extension/xloop.mlua +100 -0
- data/vendor/lua/lib/lua/metalua/extension/xmatch.mlua +216 -0
- data/vendor/lua/lib/lua/metalua/metaloop.mlua +76 -0
- data/vendor/lua/lib/lua/metalua/mlc.lua +0 -0
- data/vendor/lua/lib/lua/metalua/mlc_xcall.lua +119 -0
- data/vendor/lua/lib/lua/metalua/mlp.lua +0 -0
- data/vendor/lua/lib/lua/metalua/package2.lua +101 -0
- data/vendor/lua/lib/lua/metalua/runtime.lua +3 -0
- data/vendor/lua/lib/lua/metalua/string2.lua +44 -0
- data/vendor/lua/lib/lua/metalua/table2.lua +372 -0
- data/vendor/lua/lib/lua/metalua/walk.mlua +304 -0
- data/vendor/lua/lib/lua/metalua/walk/bindings.mlua +41 -0
- data/vendor/lua/lib/lua/metalua/walk/id.mlua +186 -0
- data/vendor/lua/lib/lua/metalua/walk/scope.lua +54 -0
- data/vendor/lua/lib/lua/mime.lua +87 -0
- data/vendor/lua/lib/lua/mime/core.dll +0 -0
- data/vendor/lua/lib/lua/mobdebug.lua +1484 -0
- data/vendor/lua/lib/lua/modules.lua +16 -0
- data/vendor/lua/lib/lua/object.lua +56 -0
- data/vendor/lua/lib/lua/oil/Exception.lua +26 -0
- data/vendor/lua/lib/lua/oil/arch.lua +27 -0
- data/vendor/lua/lib/lua/oil/arch/basic/client.lua +29 -0
- data/vendor/lua/lib/lua/oil/arch/basic/common.lua +13 -0
- data/vendor/lua/lib/lua/oil/arch/basic/server.lua +27 -0
- data/vendor/lua/lib/lua/oil/arch/cooperative/common.lua +10 -0
- data/vendor/lua/lib/lua/oil/arch/cooperative/server.lua +16 -0
- data/vendor/lua/lib/lua/oil/arch/corba/client.lua +39 -0
- data/vendor/lua/lib/lua/oil/arch/corba/common.lua +58 -0
- data/vendor/lua/lib/lua/oil/arch/corba/intercepted/client.lua +9 -0
- data/vendor/lua/lib/lua/oil/arch/corba/intercepted/server.lua +9 -0
- data/vendor/lua/lib/lua/oil/arch/corba/server.lua +35 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/byref.lua +18 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/client.lua +19 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/common.lua +18 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/server.lua +19 -0
- data/vendor/lua/lib/lua/oil/arch/typed/client.lua +27 -0
- data/vendor/lua/lib/lua/oil/arch/typed/common.lua +9 -0
- data/vendor/lua/lib/lua/oil/arch/typed/server.lua +18 -0
- data/vendor/lua/lib/lua/oil/assert.lua +87 -0
- data/vendor/lua/lib/lua/oil/builder.lua +45 -0
- data/vendor/lua/lib/lua/oil/builder/basic/client.lua +31 -0
- data/vendor/lua/lib/lua/oil/builder/basic/common.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/basic/server.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/cooperative/common.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/cooperative/server.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/corba/client.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/corba/common.lua +24 -0
- data/vendor/lua/lib/lua/oil/builder/corba/gencode.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/corba/intercepted/client.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/corba/intercepted/server.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/corba/server.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/lua/client.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/lua/server.lua +12 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/byref.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/client.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/common.lua +14 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/server.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/typed/client.lua +16 -0
- data/vendor/lua/lib/lua/oil/builder/typed/server.lua +12 -0
- data/vendor/lua/lib/lua/oil/compat.lua +846 -0
- data/vendor/lua/lib/lua/oil/component.lua +1 -0
- data/vendor/lua/lib/lua/oil/corba/giop.lua +301 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Codec.lua +1568 -0
- data/vendor/lua/lib/lua/oil/corba/giop/CodecGen.lua +589 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Exception.lua +25 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Indexer.lua +63 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Listener.lua +343 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Messenger.lua +228 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Referrer.lua +180 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Requester.lua +462 -0
- data/vendor/lua/lib/lua/oil/corba/idl.lua +597 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Compiler.lua +133 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Importer.lua +235 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Indexer.lua +95 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Registry.lua +1821 -0
- data/vendor/lua/lib/lua/oil/corba/idl/ir.lua +847 -0
- data/vendor/lua/lib/lua/oil/corba/idl/sysex.lua +21 -0
- data/vendor/lua/lib/lua/oil/corba/iiop/Profiler.lua +200 -0
- data/vendor/lua/lib/lua/oil/corba/intercepted/Listener.lua +158 -0
- data/vendor/lua/lib/lua/oil/corba/intercepted/Requester.lua +181 -0
- data/vendor/lua/lib/lua/oil/corba/services/event.lua +126 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/ConsumerAdmin.lua +50 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/EventFactory.lua +15 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/EventQueue.lua +37 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushConsumer.lua +75 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushSupplier.lua +62 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/SingleDeferredDispatcher.lua +60 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/SingleSynchronousDispatcher.lua +39 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/SupplierAdmin.lua +50 -0
- data/vendor/lua/lib/lua/oil/corba/services/naming.lua +436 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Acceptor.lua +268 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Channels.lua +121 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Connector.lua +147 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Dispatcher.lua +99 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies.lua +86 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/asynchronous.lua +56 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/protected.lua +17 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/synchronous.lua +17 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/utils.lua +29 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Receiver.lua +110 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Servants.lua +207 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Sockets.lua +44 -0
- data/vendor/lua/lib/lua/oil/kernel/cooperative/Receiver.lua +139 -0
- data/vendor/lua/lib/lua/oil/kernel/intercepted/Listener.lua +47 -0
- data/vendor/lua/lib/lua/oil/kernel/intercepted/Requester.lua +58 -0
- data/vendor/lua/lib/lua/oil/kernel/lua/Dispatcher.lua +76 -0
- data/vendor/lua/lib/lua/oil/kernel/lua/Proxies.lua +69 -0
- data/vendor/lua/lib/lua/oil/kernel/typed/Dispatcher.lua +91 -0
- data/vendor/lua/lib/lua/oil/kernel/typed/Proxies.lua +153 -0
- data/vendor/lua/lib/lua/oil/kernel/typed/Servants.lua +137 -0
- data/vendor/lua/lib/lua/oil/ludo/Codec.lua +66 -0
- data/vendor/lua/lib/lua/oil/ludo/CodecByRef.lua +103 -0
- data/vendor/lua/lib/lua/oil/ludo/Listener.lua +151 -0
- data/vendor/lua/lib/lua/oil/ludo/Referrer.lua +72 -0
- data/vendor/lua/lib/lua/oil/ludo/Requester.lua +107 -0
- data/vendor/lua/lib/lua/oil/oo.lua +1 -0
- data/vendor/lua/lib/lua/oil/port.lua +1 -0
- data/vendor/lua/lib/lua/oil/properties.lua +57 -0
- data/vendor/lua/lib/lua/oil/verbose.lua +133 -0
- data/vendor/lua/lib/lua/package_ext.lua +15 -0
- data/vendor/lua/lib/lua/parser.lua +268 -0
- data/vendor/lua/lib/lua/pl/Date.lua +555 -0
- data/vendor/lua/lib/lua/pl/List.lua +613 -0
- data/vendor/lua/lib/lua/pl/Map.lua +113 -0
- data/vendor/lua/lib/lua/pl/MultiMap.lua +62 -0
- data/vendor/lua/lib/lua/pl/OrderedMap.lua +151 -0
- data/vendor/lua/lib/lua/pl/Set.lua +153 -0
- data/vendor/lua/lib/lua/pl/app.lua +165 -0
- data/vendor/lua/lib/lua/pl/array2d.lua +501 -0
- data/vendor/lua/lib/lua/pl/class.lua +180 -0
- data/vendor/lua/lib/lua/pl/comprehension.lua +286 -0
- data/vendor/lua/lib/lua/pl/config.lua +176 -0
- data/vendor/lua/lib/lua/pl/data.lua +606 -0
- data/vendor/lua/lib/lua/pl/dir.lua +475 -0
- data/vendor/lua/lib/lua/pl/file.lua +70 -0
- data/vendor/lua/lib/lua/pl/func.lua +376 -0
- data/vendor/lua/lib/lua/pl/init.lua +68 -0
- data/vendor/lua/lib/lua/pl/input.lua +173 -0
- data/vendor/lua/lib/lua/pl/lapp.lua +407 -0
- data/vendor/lua/lib/lua/pl/lexer.lua +456 -0
- data/vendor/lua/lib/lua/pl/luabalanced.lua +264 -0
- data/vendor/lua/lib/lua/pl/operator.lua +201 -0
- data/vendor/lua/lib/lua/pl/path.lua +398 -0
- data/vendor/lua/lib/lua/pl/permute.lua +63 -0
- data/vendor/lua/lib/lua/pl/platf/luajava.lua +101 -0
- data/vendor/lua/lib/lua/pl/pretty.lua +285 -0
- data/vendor/lua/lib/lua/pl/seq.lua +551 -0
- data/vendor/lua/lib/lua/pl/sip.lua +344 -0
- data/vendor/lua/lib/lua/pl/strict.lua +70 -0
- data/vendor/lua/lib/lua/pl/stringio.lua +158 -0
- data/vendor/lua/lib/lua/pl/stringx.lua +440 -0
- data/vendor/lua/lib/lua/pl/tablex.lua +817 -0
- data/vendor/lua/lib/lua/pl/template.lua +103 -0
- data/vendor/lua/lib/lua/pl/test.lua +135 -0
- data/vendor/lua/lib/lua/pl/text.lua +243 -0
- data/vendor/lua/lib/lua/pl/utils.lua +550 -0
- data/vendor/lua/lib/lua/pl/xml.lua +689 -0
- data/vendor/lua/lib/lua/profiler.dll +0 -0
- data/vendor/lua/lib/lua/re.lua +248 -0
- data/vendor/lua/lib/lua/rex_onig.dll +0 -0
- data/vendor/lua/lib/lua/rex_pcre.dll +0 -0
- data/vendor/lua/lib/lua/rex_posix.dll +0 -0
- data/vendor/lua/lib/lua/rings.dll +0 -0
- data/vendor/lua/lib/lua/serialize.lua +193 -0
- data/vendor/lua/lib/lua/set.lua +149 -0
- data/vendor/lua/lib/lua/socket.lua +133 -0
- data/vendor/lua/lib/lua/socket/core.dll +0 -0
- data/vendor/lua/lib/lua/socket/ftp.lua +281 -0
- data/vendor/lua/lib/lua/socket/http.lua +350 -0
- data/vendor/lua/lib/lua/socket/smtp.lua +251 -0
- data/vendor/lua/lib/lua/socket/tp.lua +123 -0
- data/vendor/lua/lib/lua/socket/url.lua +297 -0
- data/vendor/lua/lib/lua/ssl.dll +0 -0
- data/vendor/lua/lib/lua/ssl.lua +93 -0
- data/vendor/lua/lib/lua/ssl/https.lua +138 -0
- data/vendor/lua/lib/lua/stable.lua +28 -0
- data/vendor/lua/lib/lua/std.lua +16 -0
- data/vendor/lua/lib/lua/strbuf.lua +32 -0
- data/vendor/lua/lib/lua/strict.lua +45 -0
- data/vendor/lua/lib/lua/string_ext.lua +274 -0
- data/vendor/lua/lib/lua/table_ext.lua +117 -0
- data/vendor/lua/lib/lua/tar.lua +262 -0
- data/vendor/lua/lib/lua/task.dll +0 -0
- data/vendor/lua/lib/lua/tree.lua +81 -0
- data/vendor/lua/lib/lua/unicode.dll +0 -0
- data/vendor/lua/lib/lua/verbose_require.lua +11 -0
- data/vendor/lua/lib/lua/vstruct.lua +86 -0
- data/vendor/lua/lib/lua/vstruct/ast.lua +192 -0
- data/vendor/lua/lib/lua/vstruct/ast/Bitpack.lua +33 -0
- data/vendor/lua/lib/lua/vstruct/ast/Generator.lua +174 -0
- data/vendor/lua/lib/lua/vstruct/ast/IO.lua +45 -0
- data/vendor/lua/lib/lua/vstruct/ast/List.lua +56 -0
- data/vendor/lua/lib/lua/vstruct/ast/Name.lua +20 -0
- data/vendor/lua/lib/lua/vstruct/ast/Repeat.lua +23 -0
- data/vendor/lua/lib/lua/vstruct/ast/Root.lua +19 -0
- data/vendor/lua/lib/lua/vstruct/ast/Table.lua +65 -0
- data/vendor/lua/lib/lua/vstruct/cursor.lua +81 -0
- data/vendor/lua/lib/lua/vstruct/io.lua +45 -0
- data/vendor/lua/lib/lua/vstruct/io/a.lua +24 -0
- data/vendor/lua/lib/lua/vstruct/io/b.lua +28 -0
- data/vendor/lua/lib/lua/vstruct/io/bigendian.lua +21 -0
- data/vendor/lua/lib/lua/vstruct/io/c.lua +25 -0
- data/vendor/lua/lib/lua/vstruct/io/defaults.lua +24 -0
- data/vendor/lua/lib/lua/vstruct/io/endianness.lua +41 -0
- data/vendor/lua/lib/lua/vstruct/io/f.lua +129 -0
- data/vendor/lua/lib/lua/vstruct/io/hostendian.lua +21 -0
- data/vendor/lua/lib/lua/vstruct/io/i.lua +42 -0
- data/vendor/lua/lib/lua/vstruct/io/littleendian.lua +21 -0
- data/vendor/lua/lib/lua/vstruct/io/m.lua +62 -0
- data/vendor/lua/lib/lua/vstruct/io/p.lua +23 -0
- data/vendor/lua/lib/lua/vstruct/io/s.lua +27 -0
- data/vendor/lua/lib/lua/vstruct/io/seekb.lua +18 -0
- data/vendor/lua/lib/lua/vstruct/io/seekf.lua +18 -0
- data/vendor/lua/lib/lua/vstruct/io/seekto.lua +18 -0
- data/vendor/lua/lib/lua/vstruct/io/u.lua +54 -0
- data/vendor/lua/lib/lua/vstruct/io/x.lua +34 -0
- data/vendor/lua/lib/lua/vstruct/io/z.lua +63 -0
- data/vendor/lua/lib/lua/vstruct/lexer.lua +100 -0
- data/vendor/lua/lib/lua/vstruct/pack.lua +142 -0
- data/vendor/lua/lib/lua/vstruct/test.lua +47 -0
- data/vendor/lua/lib/lua/vstruct/test/basic.lua +73 -0
- data/vendor/lua/lib/lua/vstruct/test/common.lua +100 -0
- data/vendor/lua/lib/lua/vstruct/test/fp-bigendian.lua +56 -0
- data/vendor/lua/lib/lua/vstruct/test/fp-littleendian.lua +56 -0
- data/vendor/lua/lib/lua/vstruct/test/struct-test-gen.lua +1230 -0
- data/vendor/lua/lib/lua/vstruct/unpack.lua +126 -0
- data/vendor/lua/lib/lua/wx.dll +0 -0
- data/vendor/lua/lib/lua/xml.lua +75 -0
- data/vendor/lua/lib/lua/zip.dll +0 -0
- data/vendor/lua/lib/lua/zlib.dll +0 -0
- metadata +529 -0
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
-- System functions
|
|
2
|
+
|
|
3
|
+
module ("dist.sys", package.seeall)
|
|
4
|
+
|
|
5
|
+
local cfg = require "dist.config"
|
|
6
|
+
local utils = require "dist.utils"
|
|
7
|
+
local lfs = require "lfs"
|
|
8
|
+
|
|
9
|
+
-- Return the path separator according to the platform.
|
|
10
|
+
function path_separator()
|
|
11
|
+
if cfg.arch == "Windows" then
|
|
12
|
+
return "\\"
|
|
13
|
+
else
|
|
14
|
+
return "/"
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
-- Return path with wrong separators replaced with the right ones.
|
|
19
|
+
function check_separators(path)
|
|
20
|
+
assert(type(path) == "string", "sys.check_separators: Argument 'path' is not a string.")
|
|
21
|
+
if cfg.arch == "Windows" then
|
|
22
|
+
return path:gsub("/", "\\")
|
|
23
|
+
else
|
|
24
|
+
return path
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
-- Return the path with the unnecessary trailing separator removed.
|
|
29
|
+
function remove_trailing(path)
|
|
30
|
+
assert(type(path) == "string", "sys.remove_trailing: Argument 'path' is not a string.")
|
|
31
|
+
if path:sub(-1) == path_separator() and not is_root(path) then path = path:sub(1,-2) end
|
|
32
|
+
return path
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
-- Return the path with the all occurences of '/.' or '\.' (representing
|
|
36
|
+
-- the current directory) removed.
|
|
37
|
+
function remove_curr_dir_dots(path)
|
|
38
|
+
assert(type(path) == "string", "sys.remove_curr_dir_dots: Argument 'path' is not a string.")
|
|
39
|
+
while path:match(path_separator() .. "%." .. path_separator()) do -- match("/%./")
|
|
40
|
+
path = path:gsub(path_separator() .. "%." .. path_separator(), path_separator()) -- gsub("/%./", "/")
|
|
41
|
+
end
|
|
42
|
+
return path:gsub(path_separator() .. "%.$", "") -- gsub("/%.$", "")
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
-- Return string argument quoted for a command line usage.
|
|
46
|
+
function quote(argument)
|
|
47
|
+
assert(type(argument) == "string", "sys.quote: Argument 'argument' is not a string.")
|
|
48
|
+
|
|
49
|
+
-- replace '/' path separators for '\' on Windows
|
|
50
|
+
if cfg.arch == "Windows" and argument:match("^[%u%U.]?:?[/\\].*") then
|
|
51
|
+
argument = argument:gsub("//","\\"):gsub("/","\\")
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
-- Windows doesn't recognize paths starting with two slashes or backslashes
|
|
55
|
+
-- so we double every backslash except for the first one
|
|
56
|
+
if cfg.arch == "Windows" and argument:match("^[/\\].*") then
|
|
57
|
+
local prefix = argument:sub(1,1)
|
|
58
|
+
argument = argument:sub(2):gsub("\\", "\\\\")
|
|
59
|
+
argument = prefix .. argument
|
|
60
|
+
else
|
|
61
|
+
argument = argument:gsub("\\", "\\\\")
|
|
62
|
+
end
|
|
63
|
+
argument = argument:gsub('"', '\\"')
|
|
64
|
+
|
|
65
|
+
return '"' .. argument .. '"'
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
-- Run the system command (in current directory).
|
|
69
|
+
-- Return true on success, nil on fail and log string.
|
|
70
|
+
-- When optional 'force_verbose' parameter is true, then the output will be shown
|
|
71
|
+
-- even when not in debug or verbose mode.
|
|
72
|
+
function exec(command, force_verbose)
|
|
73
|
+
force_verbose = force_verbose or false
|
|
74
|
+
assert(type(command) == "string", "sys.exec: Argument 'command' is not a string.")
|
|
75
|
+
assert(type(force_verbose) == "boolean", "sys.exec: Argument 'force_verbose' is not a boolean.")
|
|
76
|
+
|
|
77
|
+
if not (cfg.verbose or cfg.debug or force_verbose) then
|
|
78
|
+
if cfg.arch == "Windows" then
|
|
79
|
+
command = command .. " > NUL 2>&1"
|
|
80
|
+
else
|
|
81
|
+
command = command .. " > /dev/null 2>&1"
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
if cfg.debug then print("Executing the command: " .. command) end
|
|
86
|
+
local ok = os.execute(command)
|
|
87
|
+
|
|
88
|
+
if ok ~= 0 then
|
|
89
|
+
return nil, "Error when running the command: " .. command
|
|
90
|
+
else
|
|
91
|
+
return true, "Sucessfully executed the command: " .. command
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
-- Execute the 'command' and returns its output as a string.
|
|
96
|
+
function capture_output(command)
|
|
97
|
+
assert(type(command) == "string", "sys.exec: Argument 'command' is not a string.")
|
|
98
|
+
|
|
99
|
+
local executed, err = io.popen(command, "r")
|
|
100
|
+
if not executed then return nil, "Error running the command '" .. command .. "':" .. err end
|
|
101
|
+
|
|
102
|
+
local captured, err = executed:read("*a")
|
|
103
|
+
if not captured then return nil, "Error reading the output of command '" .. command .. "':" .. err end
|
|
104
|
+
|
|
105
|
+
executed:close()
|
|
106
|
+
return captured
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
-- Return whether the path is a root.
|
|
110
|
+
function is_root(path)
|
|
111
|
+
assert(type(path) == "string", "sys.is_root: Argument 'path' is not a string.")
|
|
112
|
+
return utils.to_boolean(path:find("^[%u%U.]?:?[/\\]$"))
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
-- Return whether the path is absolute.
|
|
116
|
+
function is_abs(path)
|
|
117
|
+
assert(type(path) == "string", "sys.is_abs: Argument 'path' is not a string.")
|
|
118
|
+
return utils.to_boolean(path:find("^[%u%U.]?:?[/\\].*$"))
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
-- Return whether the specified file or directory exists.
|
|
122
|
+
function exists(path)
|
|
123
|
+
assert(type(path) == "string", "sys.exists: Argument 'path' is not a string.")
|
|
124
|
+
local attr, err = lfs.attributes(path)
|
|
125
|
+
return utils.to_boolean(attr), err
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
-- Return whether the 'file' exists and is a file.
|
|
129
|
+
function is_file(file)
|
|
130
|
+
assert(type(file) == "string", "sys.is_file: Argument 'file' is not a string.")
|
|
131
|
+
return lfs.attributes(file, "mode") == "file"
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
-- Return whether the 'dir' exists and is a directory.
|
|
135
|
+
function is_dir(dir)
|
|
136
|
+
assert(type(dir) == "string", "sys.is_dir: Argument 'dir' is not a string.")
|
|
137
|
+
return lfs.attributes(dir, "mode") == "directory"
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
-- Return the current working directory
|
|
141
|
+
function current_dir()
|
|
142
|
+
local dir, err = lfs.currentdir()
|
|
143
|
+
if not dir then return nil, err end
|
|
144
|
+
return dir
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
-- Return an iterator over the directory 'dir'.
|
|
148
|
+
-- If 'dir' doesn't exist or is not a directory, return nil and error message.
|
|
149
|
+
function get_directory(dir)
|
|
150
|
+
dir = dir or current_dir()
|
|
151
|
+
assert(type(dir) == "string", "sys.get_directory: Argument 'dir' is not a string.")
|
|
152
|
+
if is_dir(dir) then
|
|
153
|
+
return lfs.dir(dir)
|
|
154
|
+
else
|
|
155
|
+
return nil, "Error: '".. dir .. "' is not a directory."
|
|
156
|
+
end
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
-- Extract file or directory name from its path.
|
|
160
|
+
function extract_name(path)
|
|
161
|
+
assert(type(path) == "string", "sys.extract_name: Argument 'path' is not a string.")
|
|
162
|
+
if is_root(path) then return path end
|
|
163
|
+
|
|
164
|
+
path = remove_trailing(path)
|
|
165
|
+
path = path:gsub("^.*" .. path_separator(), "")
|
|
166
|
+
return path
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
-- Return parent directory of the 'path' or nil if there's no parent directory.
|
|
170
|
+
-- If 'path' is a path to file, return the directory the file is in.
|
|
171
|
+
function parent_dir(path)
|
|
172
|
+
assert(type(path) == "string", "sys.parent_dir: Argument 'path' is not a string.")
|
|
173
|
+
path = remove_curr_dir_dots(path)
|
|
174
|
+
path = remove_trailing(path)
|
|
175
|
+
|
|
176
|
+
local dir = path:gsub(utils.escape_magic(extract_name(path)) .. "$", "")
|
|
177
|
+
if dir == "" then
|
|
178
|
+
return nil
|
|
179
|
+
else
|
|
180
|
+
return make_path(dir)
|
|
181
|
+
end
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
-- Returns the table of all parent directories of 'path' up to the directory
|
|
185
|
+
-- specified by 'boundary_path' (exclusive).
|
|
186
|
+
function parents_up_to(path, boundary_path)
|
|
187
|
+
assert(type(path) == "string", "sys.parents_up_to: Argument 'path' is not a string.")
|
|
188
|
+
assert(type(boundary_path) == "string", "sys.parents_up_to: Argument 'boundary_path' is not a string.")
|
|
189
|
+
boundary_path = remove_trailing(boundary_path)
|
|
190
|
+
|
|
191
|
+
-- helper function to recursively collect the parent directories
|
|
192
|
+
local function collect_parents(_path, _parents)
|
|
193
|
+
local _parent = parent_dir(_path)
|
|
194
|
+
if _parent and _parent ~= boundary_path then
|
|
195
|
+
table.insert(_parents, _parent)
|
|
196
|
+
return collect_parents(_parent, _parents)
|
|
197
|
+
else
|
|
198
|
+
return _parents
|
|
199
|
+
end
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
return collect_parents(path, {})
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
-- Compose path composed from specified parts or current
|
|
206
|
+
-- working directory when no part specified.
|
|
207
|
+
function make_path(...)
|
|
208
|
+
local parts = arg
|
|
209
|
+
assert(type(parts) == "table", "sys.make_path: Argument 'parts' is not a table.")
|
|
210
|
+
|
|
211
|
+
local path, err
|
|
212
|
+
if parts.n == 0 then
|
|
213
|
+
path, err = current_dir()
|
|
214
|
+
else
|
|
215
|
+
path, err = table.concat(parts, path_separator())
|
|
216
|
+
end
|
|
217
|
+
if not path then return nil, err end
|
|
218
|
+
|
|
219
|
+
-- squeeze repeated occurences of a file separator
|
|
220
|
+
path = path:gsub(path_separator() .. "+", path_separator())
|
|
221
|
+
|
|
222
|
+
-- remove unnecessary trailing path separator
|
|
223
|
+
path = remove_trailing(path)
|
|
224
|
+
|
|
225
|
+
return path
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
-- Return absolute path from 'path'
|
|
229
|
+
function abs_path(path)
|
|
230
|
+
assert(type(path) == "string", "sys.get_abs_path: Argument 'path' is not a string.")
|
|
231
|
+
if is_abs(path) then return path end
|
|
232
|
+
|
|
233
|
+
local cur_dir, err = current_dir()
|
|
234
|
+
if not cur_dir then return nil, err end
|
|
235
|
+
|
|
236
|
+
return make_path(cur_dir, path)
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
-- Return table of all paths in 'dir'
|
|
240
|
+
function get_file_list(dir)
|
|
241
|
+
dir = dir or current_dir()
|
|
242
|
+
assert(type(dir) == "string", "sys.get_directory: Argument 'dir' is not a string.")
|
|
243
|
+
if not exists(dir) then return nil, "Error getting file list of '" .. dir .. "': directory doesn't exist." end
|
|
244
|
+
|
|
245
|
+
local function collect(path, all_paths)
|
|
246
|
+
for item in get_directory(path) do
|
|
247
|
+
|
|
248
|
+
local item_path = make_path(path, item)
|
|
249
|
+
local _, last = item_path:find(dir .. path_separator(), 1, true)
|
|
250
|
+
local path_to_insert = item_path:sub(last + 1)
|
|
251
|
+
|
|
252
|
+
if is_file(item_path) then
|
|
253
|
+
table.insert(all_paths, path_to_insert)
|
|
254
|
+
elseif is_dir(item_path) and item ~= "." and item ~= ".." then
|
|
255
|
+
table.insert(all_paths, path_to_insert)
|
|
256
|
+
collect(item_path, all_paths)
|
|
257
|
+
end
|
|
258
|
+
end
|
|
259
|
+
end
|
|
260
|
+
|
|
261
|
+
local all_paths = {}
|
|
262
|
+
collect(dir, all_paths)
|
|
263
|
+
|
|
264
|
+
return all_paths
|
|
265
|
+
end
|
|
266
|
+
|
|
267
|
+
-- Return time of the last modification of 'file'.
|
|
268
|
+
function last_modification_time(file)
|
|
269
|
+
assert(type(file) == "string", "sys.last_modification_time: Argument 'file' is not a string.")
|
|
270
|
+
return lfs.attributes(file, "modification")
|
|
271
|
+
end
|
|
272
|
+
|
|
273
|
+
-- Return the current time (in seconds since epoch).
|
|
274
|
+
function current_time()
|
|
275
|
+
return os.time()
|
|
276
|
+
end
|
|
277
|
+
|
|
278
|
+
-- Change the current working directory and return 'true' and previous working
|
|
279
|
+
-- directory on success and 'nil' and error message on error.
|
|
280
|
+
function change_dir(dir_name)
|
|
281
|
+
assert(type(dir_name) == "string", "sys.change_dir: Argument 'dir_name' is not a string.")
|
|
282
|
+
local prev_dir = current_dir()
|
|
283
|
+
local ok, err = lfs.chdir(dir_name)
|
|
284
|
+
if ok then
|
|
285
|
+
return ok, prev_dir
|
|
286
|
+
else
|
|
287
|
+
return nil, err
|
|
288
|
+
end
|
|
289
|
+
end
|
|
290
|
+
|
|
291
|
+
-- Make a new directory, making also all of its parent directories that doesn't exist.
|
|
292
|
+
function make_dir(dir_name)
|
|
293
|
+
assert(type(dir_name) == "string", "sys.make_dir: Argument 'dir_name' is not a string.")
|
|
294
|
+
if exists(dir_name) then
|
|
295
|
+
return true
|
|
296
|
+
else
|
|
297
|
+
local par_dir = parent_dir(dir_name)
|
|
298
|
+
if par_dir then
|
|
299
|
+
local ok, err = make_dir(par_dir)
|
|
300
|
+
if not ok then return nil, err end
|
|
301
|
+
end
|
|
302
|
+
return lfs.mkdir(dir_name)
|
|
303
|
+
end
|
|
304
|
+
end
|
|
305
|
+
|
|
306
|
+
-- Move file (or directory) to the destination directory
|
|
307
|
+
function move_to(file_or_dir, dest_dir)
|
|
308
|
+
assert(type(file_or_dir) == "string", "sys.move_to: Argument 'file_or_dir' is not a string.")
|
|
309
|
+
assert(type(dest_dir) == "string", "sys.move_to: Argument 'dest_dir' is not a string.")
|
|
310
|
+
assert(is_dir(dest_dir), "sys.move_to: destination '" .. dest_dir .."' is not a directory.")
|
|
311
|
+
|
|
312
|
+
-- Extract file/dir name from its path
|
|
313
|
+
local file_or_dir_name = extract_name(file_or_dir)
|
|
314
|
+
|
|
315
|
+
return os.rename(file_or_dir, make_path(dest_dir, file_or_dir_name))
|
|
316
|
+
end
|
|
317
|
+
|
|
318
|
+
-- rename file (or directory) to the new name.
|
|
319
|
+
function rename(file, new_name)
|
|
320
|
+
assert(type(file) == "string", "sys.rename: Argument 'file' is not a string.")
|
|
321
|
+
assert(type(new_name) == "string", "sys.rename: Argument 'new_name' is not a string.")
|
|
322
|
+
assert(not exists(new_name), "sys.rename: desired filename already exists.")
|
|
323
|
+
|
|
324
|
+
return os.rename(file, new_name)
|
|
325
|
+
end
|
|
326
|
+
|
|
327
|
+
-- Copy 'source' to the destination directory 'dest_dir'.
|
|
328
|
+
-- If 'source' is a directory, then recursive copying is used.
|
|
329
|
+
-- For non-recursive copying of directories use the make_dir() function.
|
|
330
|
+
function copy(source, dest_dir)
|
|
331
|
+
assert(type(source) == "string", "sys.copy: Argument 'file_or_dir' is not a string.")
|
|
332
|
+
assert(type(dest_dir) == "string", "sys.copy: Argument 'dest_dir' is not a string.")
|
|
333
|
+
assert(is_dir(dest_dir), "sys.copy: destination '" .. dest_dir .."' is not a directory.")
|
|
334
|
+
|
|
335
|
+
if cfg.arch == "Windows" then
|
|
336
|
+
if is_dir(source) then
|
|
337
|
+
make_dir(make_path(dest_dir, extract_name(source)))
|
|
338
|
+
return exec("xcopy /E /I /Y /Q " .. quote(source) .. " " .. quote(dest_dir .. "\\" .. extract_name(source)))
|
|
339
|
+
else
|
|
340
|
+
return exec("copy /Y " .. quote(source) .. " " .. quote(dest_dir))
|
|
341
|
+
end
|
|
342
|
+
else
|
|
343
|
+
if is_dir(source) then
|
|
344
|
+
return exec("cp -fRH " .. quote(source) .. " " .. quote(dest_dir))
|
|
345
|
+
else
|
|
346
|
+
return exec("cp -fH " .. quote(source) .. " " .. quote(dest_dir))
|
|
347
|
+
end
|
|
348
|
+
end
|
|
349
|
+
end
|
|
350
|
+
|
|
351
|
+
-- Delete the specified file or directory
|
|
352
|
+
function delete(path)
|
|
353
|
+
assert(type(path) == "string", "sys.delete: Argument 'path' is not a string.")
|
|
354
|
+
assert(is_abs(path), "sys.delete: Argument 'path' is not an absolute path.")
|
|
355
|
+
|
|
356
|
+
if cfg.arch == "Windows" then
|
|
357
|
+
if not exists(path) then
|
|
358
|
+
return true
|
|
359
|
+
elseif is_file(path) then
|
|
360
|
+
return os.remove(path)
|
|
361
|
+
else
|
|
362
|
+
return exec("rd /S /Q " .. quote(path))
|
|
363
|
+
end
|
|
364
|
+
else
|
|
365
|
+
return exec("rm -rf " .. quote(path))
|
|
366
|
+
end
|
|
367
|
+
end
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
-- System functions
|
|
2
|
+
|
|
3
|
+
module ("dist.utils", package.seeall)
|
|
4
|
+
|
|
5
|
+
local sys = require "dist.sys"
|
|
6
|
+
|
|
7
|
+
-- Returns a deep copy of 'table' with reference to the same metadata table.
|
|
8
|
+
-- Source: http://lua-users.org/wiki/CopyTable
|
|
9
|
+
function deepcopy(object)
|
|
10
|
+
local lookup_table = {}
|
|
11
|
+
local function _copy(object)
|
|
12
|
+
if type(object) ~= "table" then
|
|
13
|
+
return object
|
|
14
|
+
elseif lookup_table[object] then
|
|
15
|
+
return lookup_table[object]
|
|
16
|
+
end
|
|
17
|
+
local new_table = {}
|
|
18
|
+
lookup_table[object] = new_table
|
|
19
|
+
for index, value in pairs(object) do
|
|
20
|
+
new_table[_copy(index)] = _copy(value)
|
|
21
|
+
end
|
|
22
|
+
return setmetatable(new_table, getmetatable(object))
|
|
23
|
+
end
|
|
24
|
+
return _copy(object)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
-- Return deep copy of table 'array', containing only items for which 'predicate_fn' returns true.
|
|
28
|
+
function filter(array, predicate_fn)
|
|
29
|
+
assert(type(array) == "table", "utils.filter: Argument 'array' is not a table.")
|
|
30
|
+
assert(type(predicate_fn) == "function", "utils.filter: Argument 'predicate_fn' is not a function.")
|
|
31
|
+
local tbl = {}
|
|
32
|
+
for _,v in pairs(array) do
|
|
33
|
+
if predicate_fn(v) == true then table.insert(tbl, deepcopy(v)) end
|
|
34
|
+
end
|
|
35
|
+
return tbl
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
-- Return deep copy of table 'array', sorted according to the 'compare_fn' function.
|
|
39
|
+
function sort(array, compare_fn)
|
|
40
|
+
assert(type(array) == "table", "utils.sort: Argument 'array' is not a table.")
|
|
41
|
+
assert(type(compare_fn) == "function", "utils.sort: Argument 'compare_fn' is not a function.")
|
|
42
|
+
local tbl = deepcopy(array)
|
|
43
|
+
table.sort(tbl, compare_fn)
|
|
44
|
+
return tbl
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
-- Return whether the 'value' is in the table 'tbl'.
|
|
48
|
+
function contains(tbl, value)
|
|
49
|
+
assert(type(tbl) == "table", "utils.contains: Argument 'tbl' is not a table.")
|
|
50
|
+
for _,v in pairs(tbl) do
|
|
51
|
+
if v == value then return true end
|
|
52
|
+
end
|
|
53
|
+
return false
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
-- Return single line string consisting of values in 'tbl' separated by comma.
|
|
57
|
+
-- Used for printing the dependencies/provides/conflicts.
|
|
58
|
+
function table_tostring(tbl, label)
|
|
59
|
+
assert(type(tbl) == "table", "utils.table_tostring: Argument 'tbl' is not a table.")
|
|
60
|
+
local str = ""
|
|
61
|
+
for k,v in pairs(tbl) do
|
|
62
|
+
if type(v) == "table" then
|
|
63
|
+
str = str .. table_tostring(v, k)
|
|
64
|
+
else
|
|
65
|
+
if label ~= nil then
|
|
66
|
+
str = str .. tostring(v) .. " [" .. tostring(label) .. "]" .. ", "
|
|
67
|
+
else
|
|
68
|
+
str = str .. tostring(v) .. ", "
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
return str
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
-- Return table made up from values of the string, separated by separator.
|
|
76
|
+
function make_table(str, separator)
|
|
77
|
+
assert(type(str) == "string", "utils.make_table: Argument 'str' is not a string.")
|
|
78
|
+
assert(type(separator) == "string", "utils.make_table: Argument 'separator' is not a string.")
|
|
79
|
+
|
|
80
|
+
local tbl = {}
|
|
81
|
+
for val in str:gmatch("(.-)" .. separator) do
|
|
82
|
+
table.insert(tbl, val)
|
|
83
|
+
end
|
|
84
|
+
local last_val = str:gsub(".-" .. separator, "")
|
|
85
|
+
if last_val and last_val ~= "" then
|
|
86
|
+
table.insert(tbl, last_val)
|
|
87
|
+
end
|
|
88
|
+
return tbl
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
-- Return whether the 'cache_timeout' for 'file' has expired.
|
|
92
|
+
function cache_timeout_expired(cache_timeout, file)
|
|
93
|
+
assert(type(cache_timeout) == "number", "utils.cache_timeout_expired: Argument 'cache_timeout' is not a number.")
|
|
94
|
+
assert(type(file) == "string", "utils.cache_timeout_expired: Argument 'file' is not a string.")
|
|
95
|
+
return sys.last_modification_time(file) + cache_timeout < sys.current_time()
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
-- Return the string 'str', with all magic (pattern) characters escaped.
|
|
99
|
+
function escape_magic(str)
|
|
100
|
+
assert(type(str) == "string", "utils.escape: Argument 'str' is not a string.")
|
|
101
|
+
local escaped = str:gsub('[%-%.%+%[%]%(%)%^%%%?%*%^%$]','%%%1')
|
|
102
|
+
return escaped
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
-- Return the boolean representation of an 'arg'.
|
|
106
|
+
function to_boolean(arg)
|
|
107
|
+
return not not arg
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
-- Return pseudo-random number in range [0, 1], [1, n] or [n, m].
|
|
111
|
+
function rand(...)
|
|
112
|
+
math.randomseed(os.time())
|
|
113
|
+
return math.random(...)
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
-- Perform check of system dependency, which isn't provided in the LuaDist
|
|
117
|
+
-- installation itself and if it is missing, print instructions how
|
|
118
|
+
-- to install it. The 'command' is used for testing, 'name' when printing
|
|
119
|
+
-- information to the user.
|
|
120
|
+
function system_dependency_available(name, command)
|
|
121
|
+
assert(type(name) == "string", "utils.system_dependency_available: Argument 'name' is not a string.")
|
|
122
|
+
assert(type(command) == "string", "utils.system_dependency_available: Argument 'command' is not a string.")
|
|
123
|
+
|
|
124
|
+
if not sys.exec(command) then
|
|
125
|
+
print("Error: command '" .. name .. "' not found on system. See installation instructions at\nhttps://github.com/LuaDist/Repository/wiki/Installation-of-System-Dependencies")
|
|
126
|
+
return false
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
return true
|
|
130
|
+
end
|