Changeset

13745:994ea8d54b72 13.0

core.configmanager: Pass name and line number in context Delays the string interpolation until the warning is logged, which may slightly lower memory usage. Allows retrieving the filename and line number easily.
author Kim Alvefur <zash@zash.se>
date Sat, 22 Feb 2025 00:04:51 +0100
parents 13744:34ac05f6bd10
children 13746:3d58ea9c5356 13747:c25ab2f47876
files core/configmanager.lua
diffstat 1 files changed, 4 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/core/configmanager.lua	Sat Feb 22 00:08:18 2025 +0100
+++ b/core/configmanager.lua	Sat Feb 22 00:04:51 2025 +0100
@@ -48,7 +48,7 @@
 function _M.get(host, key)
 	local v = config[host][key];
 	if v and errors.is_error(v) then
-		log("warn", "%s", v.text);
+		log("warn", "%s:%d: %s", v.context.filename, v.context.fileline, v.text);
 		return nil;
 	end
 	return v;
@@ -376,10 +376,9 @@
 		else
 			env.Credential = function()
 				return errors.new({
-						type = "continue",
-						text = ("%s:%d: Credential() requires the $CREDENTIALS_DIRECTORY environment variable to be set")
-							:format(config_file, get_line_number(config_file));
-					});
+						type = "continue";
+						text = "Credential() requires the $CREDENTIALS_DIRECTORY environment variable to be set";
+					}, { filename = config_file; fileline = get_line_number(config_file) });
 			end
 		end