The add_package_path function:
local gmatch = string.gmatch local append = table.insert local join = table.concat function to_array(iterator) local arr = {} for v in iterator do append(arr, v) end return arr end function add_path(package_path, path) local paths = to_array(gmatch(package_path, "[^;]+")) -- check if the path does not exist? append(paths, path) return join(paths, ";") end function add_package_path(path) package.path = add_path(package.path, path) end function add_package_cpath(path) package.cpath = add_path(package.cpath, path) end print(add_path(package.path, './lua_modules/?.lua'))
Luarocks example:
mkdir app cd app/ luarocks install --tree=lua_modules promise-es6 luarocks install --tree=lua_modules luv luarocks list --tree=lua_modules
Example usage of the add_package_path function:
add_package_path("./lua_modules/share/lua/5.3/?.lua") add_package_cpath("./lua_modules/lib/lua/5.3/?.so") local Promise = require("Promise") local luv = require("luv")
18900cookie-checkLua add package path