Mercurial > prosody-hg
comparison core/configmanager.lua @ 6779:6236668da30a
core.*: Remove use of module() function
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sat, 21 Feb 2015 10:42:19 +0100 |
| parents | be98ebe87eef |
| children | 24170d74b00b |
comparison
equal
deleted
inserted
replaced
| 6778:4009ae66e0f0 | 6779:6236668da30a |
|---|---|
| 17 local deps = require"util.dependencies"; | 17 local deps = require"util.dependencies"; |
| 18 local resolve_relative_path = require"util.paths".resolve_relative_path; | 18 local resolve_relative_path = require"util.paths".resolve_relative_path; |
| 19 local glob_to_pattern = require"util.paths".glob_to_pattern; | 19 local glob_to_pattern = require"util.paths".glob_to_pattern; |
| 20 local path_sep = package.config:sub(1,1); | 20 local path_sep = package.config:sub(1,1); |
| 21 | 21 |
| 22 local have_encodings, encodings = pcall(require, "util.encodings"); | 22 local encodings = deps.softreq"util.encodings"; |
| 23 local nameprep = have_encodings and encodings.stringprep.nameprep or function (host) return host:lower(); end | 23 local nameprep = encodings and encodings.stringprep.nameprep or function (host) return host:lower(); end |
| 24 | 24 |
| 25 module "configmanager" | 25 local _M = {}; |
| 26 local _ENV = nil; | |
| 26 | 27 |
| 27 _M.resolve_relative_path = resolve_relative_path; -- COMPAT | 28 _M.resolve_relative_path = resolve_relative_path; -- COMPAT |
| 28 | 29 |
| 29 local parsers = {}; | 30 local parsers = {}; |
| 30 | 31 |
| 32 local config = setmetatable({ ["*"] = { } }, config_mt); | 33 local config = setmetatable({ ["*"] = { } }, config_mt); |
| 33 | 34 |
| 34 -- When host not found, use global | 35 -- When host not found, use global |
| 35 local host_mt = { __index = function(_, k) return config["*"][k] end } | 36 local host_mt = { __index = function(_, k) return config["*"][k] end } |
| 36 | 37 |
| 37 function getconfig() | 38 function _M.getconfig() |
| 38 return config; | 39 return config; |
| 39 end | 40 end |
| 40 | 41 |
| 41 function get(host, key, _oldkey) | 42 function _M.get(host, key, _oldkey) |
| 42 if key == "core" then | 43 if key == "core" then |
| 43 key = _oldkey; -- COMPAT with code that still uses "core" | 44 key = _oldkey; -- COMPAT with code that still uses "core" |
| 44 end | 45 end |
| 45 return config[host][key]; | 46 return config[host][key]; |
| 46 end | 47 end |
| 71 key, value = value, _oldvalue; --COMPAT with code that still uses "core" | 72 key, value = value, _oldvalue; --COMPAT with code that still uses "core" |
| 72 end | 73 end |
| 73 return set(config, host, key, value); | 74 return set(config, host, key, value); |
| 74 end | 75 end |
| 75 | 76 |
| 76 function load(filename, config_format) | 77 function _M.load(filename, config_format) |
| 77 config_format = config_format or filename:match("%w+$"); | 78 config_format = config_format or filename:match("%w+$"); |
| 78 | 79 |
| 79 if parsers[config_format] and parsers[config_format].load then | 80 if parsers[config_format] and parsers[config_format].load then |
| 80 local f, err = io.open(filename); | 81 local f, err = io.open(filename); |
| 81 if f then | 82 if f then |
| 100 else | 101 else |
| 101 return nil, "file", "no parser for "..(config_format); | 102 return nil, "file", "no parser for "..(config_format); |
| 102 end | 103 end |
| 103 end | 104 end |
| 104 | 105 |
| 105 function addparser(config_format, parser) | 106 function _M.addparser(config_format, parser) |
| 106 if config_format and parser then | 107 if config_format and parser then |
| 107 parsers[config_format] = parser; | 108 parsers[config_format] = parser; |
| 108 end | 109 end |
| 109 end | 110 end |
| 110 | 111 |
