view mod_http_libjs/mod_http_libjs.lua @ 6534:5aeefc2251d4

mod_firewall: Load a script completely or not at all Previously it was possible that some chains would load, but others would not. This can be surprising (that a "half-loaded" state is possible) and hard to debug. This change makes it so that if some chains don't compile, the whole script will be treated as not loaded.
author Matthew Wild <mwild1@gmail.com>
date Wed, 06 May 2026 16:15:38 +0100
parents 0bd1804baae7
children
line wrap: on
line source

local http_files = require "net.http.files";

local mime_map = module:shared("/*/http_files/mime").types or {
	css = "text/css",
	js = "application/javascript",
};

local libjs_path = module:get_option_string("libjs_path", "/usr/share/javascript");

do -- sanity check
	local lfs = require "lfs";

	local exists, err = lfs.attributes(libjs_path, "mode");
	if exists ~= "directory" then
		module:log("error", "Problem with 'libjs_path': %s", err or "not a directory");
	end
end

module:provides("http", {
		default_path = "/share";
		route = {
			["GET /*"] = http_files.serve({ path = libjs_path, mime_map = mime_map });
		}
	});