aboutsummaryrefslogtreecommitdiff
path: root/src/luarocks/deps.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/luarocks/deps.lua')
-rw-r--r--src/luarocks/deps.lua23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/luarocks/deps.lua b/src/luarocks/deps.lua
index d9a88c2b..c2f6ab96 100644
--- a/src/luarocks/deps.lua
+++ b/src/luarocks/deps.lua
@@ -129,12 +129,13 @@ function deps.report_missing_dependencies(name, version, dependencies, deps_mode
129 end 129 end
130end 130end
131 131
132function deps.fulfill_dependency(dep, deps_mode, name, version, rocks_provided) 132function deps.fulfill_dependency(dep, deps_mode, name, version, rocks_provided, verify)
133 assert(dep:type() == "query") 133 assert(dep:type() == "query")
134 assert(type(deps_mode) == "string" or deps_mode == nil) 134 assert(type(deps_mode) == "string" or deps_mode == nil)
135 assert(type(name) == "string" or name == nil) 135 assert(type(name) == "string" or name == nil)
136 assert(type(version) == "string" or version == nil) 136 assert(type(version) == "string" or version == nil)
137 assert(type(rocks_provided) == "table" or rocks_provided == nil) 137 assert(type(rocks_provided) == "table" or rocks_provided == nil)
138 assert(type(verify) == "boolean" or verify == nil)
138 deps_mode = deps_mode or "all" 139 deps_mode = deps_mode or "all"
139 rocks_provided = rocks_provided or {} 140 rocks_provided = rocks_provided or {}
140 141
@@ -169,7 +170,12 @@ function deps.fulfill_dependency(dep, deps_mode, name, version, rocks_provided)
169 return nil, "Could not satisfy dependency "..tostring(dep)..": "..search_err 170 return nil, "Could not satisfy dependency "..tostring(dep)..": "..search_err
170 end 171 end
171 util.printout("Installing "..url) 172 util.printout("Installing "..url)
172 local ok, install_err, errcode = install.command({deps_mode = deps_mode, namespace = dep.namespace}, url) 173 local install_flags = {
174 deps_mode = deps_mode,
175 namespace = dep.namespace,
176 verify = verify,
177 }
178 local ok, install_err, errcode = install.command(install_flags, url)
173 if not ok then 179 if not ok then
174 return nil, "Failed installing dependency: "..url.." - "..install_err, errcode 180 return nil, "Failed installing dependency: "..url.." - "..install_err, errcode
175 end 181 end
@@ -183,11 +189,18 @@ end
183-- Packages are installed using the LuaRocks "install" command. 189-- Packages are installed using the LuaRocks "install" command.
184-- Aborts the program if a dependency could not be fulfilled. 190-- Aborts the program if a dependency could not be fulfilled.
185-- @param rockspec table: A rockspec in table format. 191-- @param rockspec table: A rockspec in table format.
186-- @param depskey table: Rockspec key to fetch to get dependency table. 192-- @param depskey string: Rockspec key to fetch to get dependency table.
193-- @param deps_mode string
194-- @param verify boolean
187-- @return boolean or (nil, string, [string]): True if no errors occurred, or 195-- @return boolean or (nil, string, [string]): True if no errors occurred, or
188-- nil and an error message if any test failed, followed by an optional 196-- nil and an error message if any test failed, followed by an optional
189-- error code. 197-- error code.
190function deps.fulfill_dependencies(rockspec, depskey, deps_mode) 198function deps.fulfill_dependencies(rockspec, depskey, deps_mode, verify)
199 assert(type(rockspec) == "table")
200 assert(type(depskey) == "string")
201 assert(type(deps_mode) == "string")
202 assert(type(verify) == "boolean" or verify == nil)
203
191 if rockspec.supported_platforms and next(rockspec.supported_platforms) then 204 if rockspec.supported_platforms and next(rockspec.supported_platforms) then
192 local supported = false 205 local supported = false
193 for _, plat in pairs(rockspec.supported_platforms) do 206 for _, plat in pairs(rockspec.supported_platforms) do
@@ -214,7 +227,7 @@ function deps.fulfill_dependencies(rockspec, depskey, deps_mode)
214 227
215 util.printout() 228 util.printout()
216 for _, dep in ipairs(rockspec[depskey]) do 229 for _, dep in ipairs(rockspec[depskey]) do
217 local ok, err = deps.fulfill_dependency(dep, deps_mode, rockspec.name, rockspec.version, rockspec.rocks_provided) 230 local ok, err = deps.fulfill_dependency(dep, deps_mode, rockspec.name, rockspec.version, rockspec.rocks_provided, verify)
218 if not ok then 231 if not ok then
219 return nil, err 232 return nil, err
220 end 233 end