view mod_discodot/mod_discodot.tl @ 5927:07f32bf41303

mod_register_apps: Update Conversations Android version Source: - https://codeberg.org/iNPUTmice/Conversations/src/commit/4eee26e7d381f59a4402db30abbc640efeaf3980/build.gradle#L105 - https://apilevels.com/ Noticed thanks to https://mastodon.sdf.org/@itokoi/112745327733761311
author Kim Alvefur <zash@zash.se>
date Mon, 08 Jul 2024 10:47:07 +0200
parents 253df0798996
children
line wrap: on
line source

local cm = require"core.configmanager";

local function format_host(host:string, conf:{string:any}) : string
	if host == "*" then
		return "Global";
	end
	local component_module = conf["component_module"];
	if component_module is string then
		if component_module == "component" then
			return string.format("Component %q", host);
		else
			return string.format("Component %q %q", host, component_module);
		end
	else
		return string.format("VirtualHost %q", host);
	end
end

function module.command(arg : { string }) : integer

	local config : { string : { string : any } } = cm.getconfig();

	print"digraph \"prosody\" {"
	for host, conf in pairs(config) do
		print(string.format("%q [label=%q]", host, format_host(host, conf)));
		local parent = host:match("%.(.*)");
		if parent and rawget(config, parent) then
			print(string.format("%q -> %q", parent, host));
		end
		local disco_items = conf["disco_items"]
		if disco_items is { { string, string } } then
			for _, pair in ipairs(disco_items) do
				print(string.format("%q -> %q", host, pair[1]));
			end
		end

	end

	print"}"

	return 0
end