File

tools/tb2err @ 13744:34ac05f6bd10 13.0

core.configmanager: Fix reporting delayed warnings from global section A Credential in the global section would be stored at delayed_warnings["*/secret"], but get("example.com","secret") would look for delayed_warnings["example.com/secret"] Storing the warnings in the config itself has the unfortunate side-effect that the config now contains util.error objects, which may be awkward if something bypasses get(). Should rawget() also do this filtering? getconfig() too? Currently this only affects prosodyctl, so maybe it won't be much of a problem.
author Kim Alvefur <zash@zash.se>
date Sat, 22 Feb 2025 00:08:18 +0100
parent 13066:4aa4a51a7a77
line wrap: on
line source

#!/usr/bin/env lua
-- traceback to errors.err for vim -q
-- e.g. curl https://prosody.im/paste/xxx | tb2err > errors.err && vim -q

local path_sep = package.config:sub(1,1);
for line in io.lines() do
	local src, err = line:match("%s*(%S+)(:%d+: .*)")
	if src then
		src = src:gsub("\\", path_sep);
		local cut = src:match("/()core/")
			or src:match("/()net/")
			or src:match("/()util/")
			or src:match("/()modules/")
			or src:match("/()prosody%-modules/")
			or src:match("/()plugins/")
			or src:match("/()prosody[ctl]*$")
		if cut then
			src = src:sub(cut);
		end
		src = src:gsub("prosody%-modules/", "../modules/")
		src = src:gsub("^modules/", "plugins/")
		io.write(src, err, "\n");
	end
end