Mercurial > prosody-modules
view mod_persisthosts/mod_persisthosts.lua @ 5366:db4c66a1d24b
mod_http_oauth2: Fill in some client metadata defaults
Explicit > Implicit
Maybe we should actually use these for something as well? :)
It's is somewhat an open question of how strictly we should enforce
things in the client metadata given that it is somewhat extensible.
Especially some of these enum fields which have corresponding IANA
registries.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 25 Apr 2023 18:09:08 +0200 |
parents | 366fadb5c6e5 |
children |
line wrap: on
line source
-- mod_persisthosts module:set_global(); local set = require"util.set"; local stat = require"lfs".attributes; local resolve_relative_path = require"core.configmanager".resolve_relative_path; local vhost_path = module:get_option_string("persisthosts_path", "conf.d"); local path_pattern = resolve_relative_path(prosody.paths.config, vhost_path) .. "/%s.cfg.lua"; local original = set.new(); original:include(prosody.hosts); module:hook("host-activated", function(host) if not original:contains(host) then local path = path_pattern:format(host); if not stat(path) then local fh, err = io.open(path, "w"); if fh then fh:write(("VirtualHost%q\n"):format(host)); module:fire_event("host-persisted", { host = host, file = fh }); fh:close(); module:log("info", "Config file for host '%s' created", host); else module:log("error", "Could not open '%s' for writing: %s", path, err or "duno"); end else module:log("debug", "File '%s' existed already", path); end else module:log("debug", "VirtualHost '%s' existed already", host); end end);