diff options
author | Matthew Wild <mwild1@gmail.com> | 2008-11-25 02:20:23 +0000 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2008-11-25 02:20:23 +0000 |
commit | 5f0338ca357b2f54fae7a9bbab4b2fbd33ad1962 (patch) | |
tree | defde7af981fc72b0810d8f88100e0134f7d9240 | |
parent | 8c44b0425f0e7030b3341fb4ea7a47b8558119b9 (diff) | |
download | prosody-5f0338ca357b2f54fae7a9bbab4b2fbd33ad1962.tar.gz prosody-5f0338ca357b2f54fae7a9bbab4b2fbd33ad1962.zip |
Friendlier messages on missing dependencies
-rw-r--r-- | main.lua | 5 | ||||
-rw-r--r-- | util/dependencies.lua | 35 |
2 files changed, 37 insertions, 3 deletions
@@ -1,11 +1,10 @@ pcall(require, "luarocks.require") local server = require "net.server" -require "lxp" -require "socket" -pcall(require,"ssl") -- Optional local config = require "core.configmanager" +require "util.dependencies" + log = require "util.logger".init("general"); do diff --git a/util/dependencies.lua b/util/dependencies.lua new file mode 100644 index 00000000..cb336e97 --- /dev/null +++ b/util/dependencies.lua @@ -0,0 +1,35 @@ +local fatal; + +local function softreq(...) local ok, lib = pcall(require, ...); if ok then return lib; else return nil; end end + +local function missingdep(name, sources, msg) + print("Prosody was unable to find "..tostring(name)); + print("This package can be obtained in the following ways:"); + print(""); + for k,v in pairs(sources) do + print("", k, v); + end + print(msg or (name.." is required for Prosody to run, so we will now exit.")); +end + +local lxp = softreq "lxp" + +if not lxp then + missingdep("luaexpat", { ["Ubuntu 8.04 (Hardy)"] = "sudo apt-get install liblua5.1-expat0"; ["luarocks"] = "luarocks install luaexpat"; }); + fatal = true; +end + +local socket = softreq "socket" + +if not socket then + missingdep("luasocket", { ["Ubuntu 8.04 (Hardy)"] = "sudo apt-get install liblua5.1-socket2"; ["luarocks"] = "luarocks install luasocket"; }); + fatal = true; +end + +local ssl = softreq "ssl" + +if not ssl then + missingdep("LuaSec", { ["Source"] = "http://www.inf.puc-rio.br/~brunoos/luasec/" }, "SSL/TLS support will not be available"); +end + +if fatal then os.exit(1); end |