Mercurial > prosody-hg
comparison core/configmanager.lua @ 466:0ecfd89c2cc0
Fix for configmanager when config file can't be found
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Sat, 29 Nov 2008 03:26:46 +0000 |
| parents | 6d87944df37c |
| children | cccd610a0ef9 |
comparison
equal
deleted
inserted
replaced
| 465:9ab51c483cf3 | 466:0ecfd89c2cc0 |
|---|---|
| 1 | 1 |
| 2 local _G = _G; | 2 local _G = _G; |
| 3 local setmetatable, loadfile, pcall, rawget, rawset, io = | 3 local setmetatable, loadfile, pcall, rawget, rawset, io = |
| 4 setmetatable, loadfile, pcall, rawget, rawset, io; | 4 setmetatable, loadfile, pcall, rawget, rawset, io; |
| 5 | |
| 5 module "configmanager" | 6 module "configmanager" |
| 6 | 7 |
| 7 local parsers = {}; | 8 local parsers = {}; |
| 8 | 9 |
| 9 local config = { ["*"] = { core = {} } }; | 10 local config = { ["*"] = { core = {} } }; |
| 50 return false; | 51 return false; |
| 51 end | 52 end |
| 52 | 53 |
| 53 function load(filename, format) | 54 function load(filename, format) |
| 54 format = format or filename:match("%w+$"); | 55 format = format or filename:match("%w+$"); |
| 56 | |
| 55 if parsers[format] and parsers[format].load then | 57 if parsers[format] and parsers[format].load then |
| 56 local f = io.open(filename); | 58 local f, err = io.open(filename); |
| 57 if f then | 59 if f then |
| 58 local ok, err = parsers[format].load(f:read("*a")); | 60 local ok, err = parsers[format].load(f:read("*a")); |
| 59 f:close(); | 61 f:close(); |
| 60 return ok, err; | 62 return ok, err; |
| 61 end | 63 end |
| 64 return f, err; | |
| 62 end | 65 end |
| 66 | |
| 63 if not format then | 67 if not format then |
| 64 return nil, "no parser specified"; | 68 return nil, "no parser specified"; |
| 65 else | 69 else |
| 66 return false, "no parser"; | 70 return nil, "no parser for "..(format); |
| 67 end | 71 end |
| 68 end | 72 end |
| 69 | 73 |
| 70 function save(filename, format) | 74 function save(filename, format) |
| 71 end | 75 end |
