util.startup: Fix exiting on pidfile trouble
prosody.shutdown() relies on prosody.main_thread, which has not been set
yet at this point.
Doing a clean shutdown might actually be harmful in case it tears down
things set up by the conflicting Prosody, such as the very pidfile we
were looking at.
Thanks again SigmaTel71 for noticing
-- Generate net/http/codes.lua from IANA HTTP status code registry
if not pcall(require, "prosody.loader") then
pcall(require, "loader");
end
local xml = require "prosody.util.xml";
local registry = xml.parse(io.read("*a"), { allow_processing_instructions = true });
io.write([[
local response_codes = {
-- Source: http://www.iana.org/assignments/http-status-codes
]]);
for record in registry:get_child("registry"):childtags("record") do
-- Extract values
local value = record:get_child_text("value");
local description = record:get_child_text("description");
local ref = record:get_child_text("xref");
local code = tonumber(value);
-- Space between major groups
if code and code % 100 == 0 then
io.write("\n");
end
-- Reserved and Unassigned entries should be not be included
if description == "Reserved" or description == "Unassigned" or description == "(Unused)" then
code = nil;
end
-- Non-empty references become comments
if ref and ref:find("%S") then
ref = " -- " .. ref;
else
ref = "";
end
io.write((code and "\t[%d] = %q;%s\n" or "\t-- [%s] = %q;%s\n"):format(code or value, description, ref));
end
io.write([[};
for k,v in pairs(response_codes) do response_codes[k] = k.." "..v; end
return setmetatable(response_codes, { __index = function(_, k) return k.." Unassigned"; end })
]]);