diff options
author | Kim Alvefur <zash@zash.se> | 2024-01-13 10:59:04 +0100 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2024-01-13 10:59:04 +0100 |
commit | 2a5e7ab8be5a519be49e79e2edb584ca998864de (patch) | |
tree | a0b12da0a20059b3a54b329aa0cdefe77005e6e4 | |
parent | 1252713d89dcd2f17d68ce27d1bb45daf5f313c8 (diff) | |
download | prosody-2a5e7ab8be5a519be49e79e2edb584ca998864de.tar.gz prosody-2a5e7ab8be5a519be49e79e2edb584ca998864de.zip |
mod_invites: Show help if --help passed instead of hostname
Because I couldn't guess the right way to get the help message without
reading the source twice.
-rw-r--r-- | plugins/mod_invites.lua | 43 |
1 files changed, 25 insertions, 18 deletions
diff --git a/plugins/mod_invites.lua b/plugins/mod_invites.lua index d49d5d36..5d378f84 100644 --- a/plugins/mod_invites.lua +++ b/plugins/mod_invites.lua @@ -249,24 +249,7 @@ function module.command(arg) end function subcommands.generate(arg) - - local sm = require "prosody.core.storagemanager"; - local mm = require "prosody.core.modulemanager"; - - local host = table.remove(arg, 1); -- pop host - assert(prosody.hosts[host], "Host "..tostring(host).." does not exist"); - sm.initialize_host(host); - module.host = host; --luacheck: ignore 122/module - token_storage = module:open_store("invite_token", "map"); - - local opts = argparse.parse(arg, { - short_params = { h = "help"; ["?"] = "help"; g = "group" }; - value_params = { group = true; reset = true; role = true }; - array_params = { group = true; role = true }; - }); - - - if opts.help then + local function help() print("usage: prosodyctl mod_" .. module.name .. " generate DOMAIN --reset USERNAME") print("usage: prosodyctl mod_" .. module.name .. " generate DOMAIN [--admin] [--role ROLE] [--group GROUPID]...") print() @@ -292,6 +275,30 @@ function subcommands.generate(arg) return 2 end + local earlyopts = argparse.parse(arg, { short_params = { h = "help"; ["?"] = "help" } }); + if earlyopts.help or next(earlyopts) ~= nil then + return help(); + end + + local sm = require "prosody.core.storagemanager"; + local mm = require "prosody.core.modulemanager"; + + local host = table.remove(arg, 1); -- pop host + assert(prosody.hosts[host], "Host "..tostring(host).." does not exist"); + sm.initialize_host(host); + module.host = host; --luacheck: ignore 122/module + token_storage = module:open_store("invite_token", "map"); + + local opts = argparse.parse(arg, { + short_params = { h = "help"; ["?"] = "help"; g = "group" }; + value_params = { group = true; reset = true; role = true }; + array_params = { group = true; role = true }; + }); + + if opts.help then + return help(); + end + -- Load mod_invites local invites = module:depends("invites"); -- Optional community module that if used, needs to be loaded here |