Mercurial > prosody-hg
comparison core/configmanager.lua @ 3609:954b1159f2f3
prosody, configmanager, certmanager: Relocate prosody.resolve_relative_path() to configmanager, and update certmanager (the only user of this function)
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Wed, 10 Nov 2010 19:46:53 +0000 |
| parents | f31fa6520a4b |
| children | 2084959d4096 |
comparison
equal
deleted
inserted
replaced
| 3608:ae0f83feaff4 | 3609:954b1159f2f3 |
|---|---|
| 11 setmetatable, loadfile, pcall, rawget, rawset, io, error, dofile, type, pairs, table, string.format; | 11 setmetatable, loadfile, pcall, rawget, rawset, io, error, dofile, type, pairs, table, string.format; |
| 12 | 12 |
| 13 | 13 |
| 14 local fire_event = prosody and prosody.events.fire_event or function () end; | 14 local fire_event = prosody and prosody.events.fire_event or function () end; |
| 15 | 15 |
| 16 local path_sep = package.config:sub(1,1); | |
| 17 | |
| 16 module "configmanager" | 18 module "configmanager" |
| 17 | 19 |
| 18 local parsers = {}; | 20 local parsers = {}; |
| 19 | 21 |
| 20 local config_mt = { __index = function (t, k) return rawget(t, "*"); end}; | 22 local config_mt = { __index = function (t, k) return rawget(t, "*"); end}; |
| 60 return false; | 62 return false; |
| 61 end | 63 end |
| 62 | 64 |
| 63 function _M.set(host, section, key, value) | 65 function _M.set(host, section, key, value) |
| 64 return set(config, host, section, key, value); | 66 return set(config, host, section, key, value); |
| 67 end | |
| 68 | |
| 69 -- Helper function to resolve relative paths (needed by config) | |
| 70 do | |
| 71 local rel_path_start = ".."..path_sep; | |
| 72 function resolve_relative_path(parent_path, path) | |
| 73 if path then | |
| 74 local is_relative; | |
| 75 if path_sep == "/" and path:sub(1,1) ~= "/" then | |
| 76 is_relative = true; | |
| 77 elseif path_sep == "\\" and (path:sub(1,1) ~= "/" and path:sub(2,3) ~= ":\\") then | |
| 78 is_relative = true; | |
| 79 end | |
| 80 if is_relative then | |
| 81 return parent_path..path_sep..path; | |
| 82 end | |
| 83 end | |
| 84 return path; | |
| 85 end | |
| 65 end | 86 end |
| 66 | 87 |
| 67 function load(filename, format) | 88 function load(filename, format) |
| 68 format = format or filename:match("%w+$"); | 89 format = format or filename:match("%w+$"); |
| 69 | 90 |
