aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormpeterv <mpeterval@gmail.com>2015-12-19 19:30:29 +0300
committermpeterv <mpeterval@gmail.com>2015-12-19 19:33:02 +0300
commitd62622aa2502cf9d100723ad9232fd72b7e75b9b (patch)
treef64cf27512413bbedea8746b00dee57baf767579 /src
parent908e4ba7f0d09fafb35272e021605404261f4432 (diff)
downloadluarocks-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.lua11
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