diff options
Diffstat (limited to 'src/luarocks/deps.lua')
-rw-r--r-- | src/luarocks/deps.lua | 23 |
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 |
130 | end | 130 | end |
131 | 131 | ||
132 | function deps.fulfill_dependency(dep, deps_mode, name, version, rocks_provided) | 132 | function 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. |
190 | function deps.fulfill_dependencies(rockspec, depskey, deps_mode) | 198 | function 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 |