view mod_discodot/mod_discodot.lua @ 5186:fa3059e653fa

mod_http_oauth2: Implement the Implicit flow Everyone says this is insecure and bad, but it's also the only thing that makes sense for e.g. pure JavaScript clients, but hey implement this even more complicated thing instead!
author Kim Alvefur <zash@zash.se>
date Thu, 02 Mar 2023 22:06:50 +0100
parents 253df0798996
children
line wrap: on
line source

local cm = require("core.configmanager");

local function format_host(host, conf)
	if host == "*" then
		return "Global"
	end
	local component_module = conf["component_module"];
	if type(component_module) == "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)

	local config = 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 type(disco_items) == "table" then
			for _, pair in ipairs(disco_items) do
				print(string.format("%q -> %q", host, pair[1]));
			end
		end

	end

	print("}")

	return 0
end