blob: 0f3561375702332912445da60770c0d035d679c1 [file] [log] [blame]
--[[
This is an output filter for HTML files
It adds a banner when maintenance mode is detected
It is invoked by the following file exists:
/srv/whimsy/www/maintenance.txt
The mod_lua API is described here:
https://httpd.apache.org/docs/current/mod/mod_lua.html#modifying_buckets
How it works:
For simplicity, we add the banner to the start of the page.
This is not really valid HTML, but seems to work in most cases, and avoids having to find a better
place to insert it.
]]--
function output_filter(r)
-- We only filter text/html types
if not r.content_type:match("text/html") then return end
-- create the customised banner
local divstyle = 'font-size:x-large;padding:15px;color:white;background:red;z-index:99;' ;
local div = ([[
<div style='%s'>
The Whimsy server is undergoing maintenance. Not all functions are available.
</div>]]):format(divstyle)
-- add header:
coroutine.yield(div)
-- spit out the actual page
while bucket ~= nil do
coroutine.yield(bucket)
end
-- no need to add anything at the end of the content
end