prosodyctl shell: Fix invocation with 3+ command arguments
The code correctly inserted the ',' when there was already a "%q" in the
format string, but then the next argument would fail to match because it
inserted ", %q" instead of "%q". The code now matches both, ensuring the
generated code will not produce a syntax error with multiple arguments.
local saslprep = require "prosody.util.encodings".stringprep.saslprep;
local _ENV = nil;
-- luacheck: std none
local function external(self, message)
message = saslprep(message);
local state
self.username, state = self.profile.external(message);
if state == false then
return "failure", "account-disabled";
elseif state == nil then
return "failure", "not-authorized";
elseif state == "expired" then
return "false", "credentials-expired";
end
return "success";
end
local function init(registerMechanism)
registerMechanism("EXTERNAL", {"external"}, external);
end
return {
init = init;
}