diff options
| author | Hisham <hisham@gobolinux.org> | 2016-10-20 14:23:41 -0400 |
|---|---|---|
| committer | Hisham <hisham@gobolinux.org> | 2016-10-20 14:23:41 -0400 |
| commit | 93f6b42794d864725fbe381425da7db9de95e766 (patch) | |
| tree | a3c07ca56275c0482df741e2d1463c72d398909f /src | |
| parent | b526f07e99af98ba42786e88c52636e52059b398 (diff) | |
| parent | 1a9389f0687017430c84ade3252f46ac4b77a738 (diff) | |
| download | luarocks-93f6b42794d864725fbe381425da7db9de95e766.tar.gz luarocks-93f6b42794d864725fbe381425da7db9de95e766.tar.bz2 luarocks-93f6b42794d864725fbe381425da7db9de95e766.zip | |
Merge branch 'master' into luarocks-3
Diffstat (limited to 'src')
| -rw-r--r-- | src/luarocks/command_line.lua | 24 | ||||
| -rw-r--r-- | src/luarocks/repos.lua | 12 |
2 files changed, 22 insertions, 14 deletions
diff --git a/src/luarocks/command_line.lua b/src/luarocks/command_line.lua index 936e9950..f7f6ccb6 100644 --- a/src/luarocks/command_line.lua +++ b/src/luarocks/command_line.lua | |||
| @@ -2,6 +2,7 @@ | |||
| 2 | --- Functions for command-line scripts. | 2 | --- Functions for command-line scripts. |
| 3 | local command_line = {} | 3 | local command_line = {} |
| 4 | 4 | ||
| 5 | local pack = function(...) return {...}, select("#", ...) end | ||
| 5 | local unpack = unpack or table.unpack | 6 | local unpack = unpack or table.unpack |
| 6 | 7 | ||
| 7 | local util = require("luarocks.util") | 8 | local util = require("luarocks.util") |
| @@ -13,17 +14,24 @@ local fs = require("luarocks.fs") | |||
| 13 | 14 | ||
| 14 | local program = util.this_program("luarocks") | 15 | local program = util.this_program("luarocks") |
| 15 | 16 | ||
| 17 | local function error_handler(err) | ||
| 18 | return debug.traceback("LuaRocks "..cfg.program_version.. | ||
| 19 | " bug (please report at https://github.com/keplerproject/luarocks/issues).\n"..err, 2) | ||
| 20 | end | ||
| 21 | |||
| 16 | --- Display an error message and exit. | 22 | --- Display an error message and exit. |
| 17 | -- @param message string: The error message. | 23 | -- @param message string: The error message. |
| 18 | -- @param exitcode number: the exitcode to use | 24 | -- @param exitcode number: the exitcode to use |
| 19 | local function die(message, exitcode) | 25 | local function die(message, exitcode) |
| 20 | assert(type(message) == "string") | 26 | assert(type(message) == "string") |
| 27 | util.printerr("\nError: "..message) | ||
| 21 | 28 | ||
| 22 | local ok, err = pcall(util.run_scheduled_functions) | 29 | local ok, err = xpcall(util.run_scheduled_functions, error_handler) |
| 23 | if not ok then | 30 | if not ok then |
| 24 | util.printerr("\nLuaRocks "..cfg.program_version.." internal bug (please report at https://github.com/keplerproject/luarocks/issues):\n"..err) | 31 | util.printerr("\nError: "..err) |
| 32 | exitcode = cfg.errorcodes.CRASH | ||
| 25 | end | 33 | end |
| 26 | util.printerr("\nError: "..message) | 34 | |
| 27 | os.exit(exitcode or cfg.errorcodes.UNSPECIFIED) | 35 | os.exit(exitcode or cfg.errorcodes.UNSPECIFIED) |
| 28 | end | 36 | end |
| 29 | 37 | ||
| @@ -177,12 +185,10 @@ function command_line.run_command(...) | |||
| 177 | 185 | ||
| 178 | if commands[command] then | 186 | if commands[command] then |
| 179 | local cmd = require(commands[command]) | 187 | local cmd = require(commands[command]) |
| 180 | local xp, ok, err, exitcode = xpcall(function() return cmd.command(flags, unpack(nonflags)) end, function(err) | 188 | local call_ok, ok, err, exitcode = xpcall(function() return cmd.command(flags, unpack(nonflags)) end, error_handler) |
| 181 | die(debug.traceback("LuaRocks "..cfg.program_version | 189 | if not call_ok then |
| 182 | .." bug (please report at https://github.com/keplerproject/luarocks/issues).\n" | 190 | die(ok, cfg.errorcodes.CRASH) |
| 183 | ..err, 2), cfg.errorcodes.CRASH) | 191 | elseif not ok then |
| 184 | end) | ||
| 185 | if xp and (not ok) then | ||
| 186 | die(err, exitcode) | 192 | die(err, exitcode) |
| 187 | end | 193 | end |
| 188 | else | 194 | else |
diff --git a/src/luarocks/repos.lua b/src/luarocks/repos.lua index 6de844d2..9616fe03 100644 --- a/src/luarocks/repos.lua +++ b/src/luarocks/repos.lua | |||
| @@ -175,12 +175,14 @@ local function find_suffixed(file, suffix) | |||
| 175 | return filename | 175 | return filename |
| 176 | end | 176 | end |
| 177 | end | 177 | end |
| 178 | |||
| 179 | return nil, table.concat(filenames, ", ") .. " not found" | ||
| 178 | end | 180 | end |
| 179 | 181 | ||
| 180 | local function move_suffixed(from_file, to_file, suffix) | 182 | local function move_suffixed(from_file, to_file, suffix) |
| 181 | local suffixed_from_file = find_suffixed(from_file, suffix) | 183 | local suffixed_from_file, err = find_suffixed(from_file, suffix) |
| 182 | if not suffixed_from_file then | 184 | if not suffixed_from_file then |
| 183 | return nil, "File not found" | 185 | return nil, "Could not move " .. from_file .. " to " .. to_file .. ": " .. err |
| 184 | end | 186 | end |
| 185 | 187 | ||
| 186 | suffix = suffixed_from_file:sub(#from_file + 1) | 188 | suffix = suffixed_from_file:sub(#from_file + 1) |
| @@ -189,14 +191,14 @@ local function move_suffixed(from_file, to_file, suffix) | |||
| 189 | end | 191 | end |
| 190 | 192 | ||
| 191 | local function delete_suffixed(file, suffix) | 193 | local function delete_suffixed(file, suffix) |
| 192 | local suffixed_file = find_suffixed(file, suffix) | 194 | local suffixed_file, err = find_suffixed(file, suffix) |
| 193 | if not suffixed_file then | 195 | if not suffixed_file then |
| 194 | return nil, "File not found", "not found" | 196 | return nil, "Could not remove " .. file .. ": " .. err, "not found" |
| 195 | end | 197 | end |
| 196 | 198 | ||
| 197 | fs.delete(suffixed_file) | 199 | fs.delete(suffixed_file) |
| 198 | if fs.exists(suffixed_file) then | 200 | if fs.exists(suffixed_file) then |
| 199 | return nil, "Failed deleting " .. suffixed_file, "fail" | 201 | return nil, "Failed deleting " .. suffixed_file .. ": file still exists", "fail" |
| 200 | end | 202 | end |
| 201 | 203 | ||
| 202 | return true | 204 | return true |
