# HG changeset patch # User Kim Alvefur # Date 1689533967 -7200 # Node ID 0ccd82b965d58263a5d43aefe7b0ca9c8980ee82 # Parent c9ef35fab0b122a9db235b5189129ccc2a4012e6 core.moduleapi: Improve handling of different types in :get_option_period Pass positive numbers trough unharmed, parse strings as periods, discard anything else. diff -r c9ef35fab0b1 -r 0ccd82b965d5 core/moduleapi.lua --- a/core/moduleapi.lua Sun Jul 16 19:49:12 2023 +0200 +++ b/core/moduleapi.lua Sun Jul 16 20:59:27 2023 +0200 @@ -256,16 +256,16 @@ function api:get_option_period(name, default_value) local value = self:get_option_scalar(name, default_value); - local num = tonumber(value); - if num then + if type(value) == "number" then -- assume seconds - return num; + return value; + elseif type(value) == "string" then + local ret = human_io.parse_duration(value); + if value ~= nil and ret == nil then + self:log("error", "Config option '%s' not understood, expecting a period (e.g. \"2 days\")", name); + end + return ret; end - local ret = human_io.parse_duration(value); - if value ~= nil and ret == nil then - self:log("error", "Config option '%s' not understood, expecting a period", name); - end - return ret; end function api:get_option_boolean(name, ...)