diff options
author | mpeterv <mpeterval@gmail.com> | 2015-12-19 19:30:29 +0300 |
---|---|---|
committer | mpeterv <mpeterval@gmail.com> | 2015-12-19 19:33:02 +0300 |
commit | d62622aa2502cf9d100723ad9232fd72b7e75b9b (patch) | |
tree | f64cf27512413bbedea8746b00dee57baf767579 /src | |
parent | 908e4ba7f0d09fafb35272e021605404261f4432 (diff) | |
download | luarocks-d62622aa2502cf9d100723ad9232fd72b7e75b9b.tar.gz luarocks-d62622aa2502cf9d100723ad9232fd72b7e75b9b.tar.bz2 luarocks-d62622aa2502cf9d100723ad9232fd72b7e75b9b.zip |
Improve error handling in builtin backend
Show error message from fs.copy when failed to install a file.
Nice for Lua module files, since their existence is not checked
beforehand.
Also remove extra 'local ok, err' declarations.
Diffstat (limited to 'src')
-rw-r--r-- | src/luarocks/build/builtin.lua | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/luarocks/build/builtin.lua b/src/luarocks/build/builtin.lua index ffdc9450..afd05954 100644 --- a/src/luarocks/build/builtin.lua +++ b/src/luarocks/build/builtin.lua | |||
@@ -174,7 +174,7 @@ function builtin.run(rockspec) | |||
174 | --TODO EXEWRAPPER | 174 | --TODO EXEWRAPPER |
175 | end | 175 | end |
176 | 176 | ||
177 | local ok = true | 177 | local ok, err |
178 | local built_modules = {} | 178 | local built_modules = {} |
179 | local luadir = path.lua_dir(rockspec.name, rockspec.version) | 179 | local luadir = path.lua_dir(rockspec.name, rockspec.version) |
180 | local libdir = path.lib_dir(rockspec.name, rockspec.version) | 180 | local libdir = path.lib_dir(rockspec.name, rockspec.version) |
@@ -236,11 +236,10 @@ function builtin.run(rockspec) | |||
236 | end | 236 | end |
237 | table.insert(objects, object) | 237 | table.insert(objects, object) |
238 | end | 238 | end |
239 | if not ok then break end | ||
240 | local module_name = name:match("([^.]*)$").."."..util.matchquote(cfg.lib_extension) | 239 | local module_name = name:match("([^.]*)$").."."..util.matchquote(cfg.lib_extension) |
241 | if moddir ~= "" then | 240 | if moddir ~= "" then |
242 | module_name = dir.path(moddir, module_name) | 241 | module_name = dir.path(moddir, module_name) |
243 | local ok, err = fs.make_dir(moddir) | 242 | ok, err = fs.make_dir(moddir) |
244 | if not ok then return nil, err end | 243 | if not ok then return nil, err end |
245 | end | 244 | end |
246 | built_modules[module_name] = dir.path(libdir, module_name) | 245 | built_modules[module_name] = dir.path(libdir, module_name) |
@@ -252,13 +251,13 @@ function builtin.run(rockspec) | |||
252 | end | 251 | end |
253 | for name, dest in pairs(built_modules) do | 252 | for name, dest in pairs(built_modules) do |
254 | fs.make_dir(dir.dir_name(dest)) | 253 | fs.make_dir(dir.dir_name(dest)) |
255 | ok = fs.copy(name, dest) | 254 | ok, err = fs.copy(name, dest) |
256 | if not ok then | 255 | if not ok then |
257 | return nil, "Failed installing "..name.." in "..dest | 256 | return nil, "Failed installing "..name.." in "..dest..": "..err |
258 | end | 257 | end |
259 | end | 258 | end |
260 | if fs.is_dir("lua") then | 259 | if fs.is_dir("lua") then |
261 | local ok, err = fs.copy_contents("lua", luadir) | 260 | ok, err = fs.copy_contents("lua", luadir) |
262 | if not ok then | 261 | if not ok then |
263 | return nil, "Failed copying contents of 'lua' directory: "..err | 262 | return nil, "Failed copying contents of 'lua' directory: "..err |
264 | end | 263 | end |