Software / code / prosody
Comparison
prosodyctl @ 2329:e497718194a3
prosodyctl: Nicer errors when addplugin command fails
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Mon, 07 Dec 2009 18:30:57 +0000 |
| parent | 2277:c5d3905c98a6 |
| child | 2410:ce912b648741 |
comparison
equal
deleted
inserted
replaced
| 2328:2804d81206d8 | 2329:e497718194a3 |
|---|---|
| 460 | 460 |
| 461 show_message(error_messages[msg]) | 461 show_message(error_messages[msg]) |
| 462 return 1; | 462 return 1; |
| 463 end | 463 end |
| 464 | 464 |
| 465 local http_errors = { | |
| 466 [404] = "Plugin not found, did you type the address correctly?" | |
| 467 }; | |
| 468 | |
| 465 function commands.addplugin(arg) | 469 function commands.addplugin(arg) |
| 466 local url = arg[1]; | 470 local url = arg[1]; |
| 467 if url:match("^http://") then | 471 if url:match("^http://") then |
| 468 local http = require "socket.http"; | 472 local http = require "socket.http"; |
| 469 show_message("Fetching..."); | 473 show_message("Fetching..."); |
| 470 local code, err = http.request(url); | 474 local code, err = http.request(url); |
| 471 if not code then | 475 if not code or not tostring(err):match("^[23]") then |
| 472 show_message("Failed: "..err); | 476 show_message("Failed: "..(http_errors[err] or ("HTTP error "..err))); |
| 473 return 1; | 477 return 1; |
| 474 end | 478 end |
| 475 if url:match("%.lua$") then | 479 if url:match("%.lua$") then |
| 476 local ok, err = datamanager.store(url:match("/mod_([^/]+)$"), "*", "plugins", {code}); | 480 local ok, err = datamanager.store(url:match("/mod_([^/]+)$"), "*", "plugins", {code}); |
| 477 if not ok then | 481 if not ok then |