Software / code / prosody
Comparison
core/moduleapi.lua @ 7975:c64ddee9d671
core.moduleapi: Factor out code for getting a scalar config option
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Wed, 15 Mar 2017 15:07:16 +0100 |
| parent | 7947:24170d74b00b |
| child | 7982:e30b0cbed472 |
comparison
equal
deleted
inserted
replaced
| 7973:703f7f45feb4 | 7975:c64ddee9d671 |
|---|---|
| 211 value = default_value; | 211 value = default_value; |
| 212 end | 212 end |
| 213 return value; | 213 return value; |
| 214 end | 214 end |
| 215 | 215 |
| 216 function api:get_option_string(name, default_value) | 216 function api:get_option_scalar(name, default_value) |
| 217 local value = self:get_option(name, default_value); | 217 local value = self:get_option(name, default_value); |
| 218 if type(value) == "table" then | 218 if type(value) == "table" then |
| 219 if #value > 1 then | 219 if #value > 1 then |
| 220 self:log("error", "Config option '%s' does not take a list, using just the first item", name); | 220 self:log("error", "Config option '%s' does not take a list, using just the first item", name); |
| 221 end | 221 end |
| 222 value = value[1]; | 222 value = value[1]; |
| 223 end | 223 end |
| 224 return value; | |
| 225 end | |
| 226 | |
| 227 function api:get_option_string(name, default_value) | |
| 228 local value = self:get_option_scalar(name, default_value); | |
| 224 if value == nil then | 229 if value == nil then |
| 225 return nil; | 230 return nil; |
| 226 end | 231 end |
| 227 return tostring(value); | 232 return tostring(value); |
| 228 end | 233 end |
| 229 | 234 |
| 230 function api:get_option_number(name, ...) | 235 function api:get_option_number(name, ...) |
| 231 local value = self:get_option(name, ...); | 236 local value = self:get_option_scalar(name, ...); |
| 232 if type(value) == "table" then | |
| 233 if #value > 1 then | |
| 234 self:log("error", "Config option '%s' does not take a list, using just the first item", name); | |
| 235 end | |
| 236 value = value[1]; | |
| 237 end | |
| 238 local ret = tonumber(value); | 237 local ret = tonumber(value); |
| 239 if value ~= nil and ret == nil then | 238 if value ~= nil and ret == nil then |
| 240 self:log("error", "Config option '%s' not understood, expecting a number", name); | 239 self:log("error", "Config option '%s' not understood, expecting a number", name); |
| 241 end | 240 end |
| 242 return ret; | 241 return ret; |
| 243 end | 242 end |
| 244 | 243 |
| 245 function api:get_option_boolean(name, ...) | 244 function api:get_option_boolean(name, ...) |
| 246 local value = self:get_option(name, ...); | 245 local value = self:get_option_scalar(name, ...); |
| 247 if type(value) == "table" then | |
| 248 if #value > 1 then | |
| 249 self:log("error", "Config option '%s' does not take a list, using just the first item", name); | |
| 250 end | |
| 251 value = value[1]; | |
| 252 end | |
| 253 if value == nil then | 246 if value == nil then |
| 254 return nil; | 247 return nil; |
| 255 end | 248 end |
| 256 local ret = value == true or value == "true" or value == 1 or nil; | 249 local ret = value == true or value == "true" or value == 1 or nil; |
| 257 if ret == nil then | 250 if ret == nil then |