# HG changeset patch # User Kim Alvefur # Date 1643997361 -3600 # Node ID ba712f7559dc6ba20b19c34fe4dc003e0d97882e # Parent 168970ce85434eac8848773375469d7771799a72 prosodyctl: Use argument parsing library to parse --help, -h, -? Reads nicer, but adds more code. Can always be reverted later I suppose. diff -r 168970ce8543 -r ba712f7559dc prosodyctl --- a/prosodyctl Fri Feb 04 17:59:42 2022 +0100 +++ b/prosodyctl Fri Feb 04 18:56:01 2022 +0100 @@ -58,6 +58,7 @@ ----------------------- +local parse_args = require "util.argparse".parse; local human_io = require "util.human.io"; local show_message, show_warning = prosodyctl.show_message, prosodyctl.show_warning; @@ -73,8 +74,11 @@ local commands = {}; local command = table.remove(arg, 1); +local only_help = { short_params = { h = "help"; ["?"] = "help" } } + function commands.install(arg) - if arg[1] == "--help" then + local opts = parse_args(arg, only_help); + if opts.help or not arg[1] then show_usage([[install]], [[Installs a prosody/luarocks plugin]]); return 1; end @@ -95,7 +99,8 @@ end function commands.remove(arg) - if arg[1] == "--help" then + local opts = parse_args(arg, only_help); + if opts.help or not arg[1] then show_usage([[remove]], [[Removes a module installed in the working directory's plugins folder]]); return 1; end @@ -105,7 +110,8 @@ end function commands.list(arg) - if arg[1] == "--help" then + local opts = parse_args(arg, only_help); + if opts.help then show_usage([[list]], [[Shows installed rocks]]); return 1; end @@ -114,7 +120,8 @@ end function commands.adduser(arg) - if not arg[1] or arg[1] == "--help" then + local opts = parse_args(arg, only_help); + if opts.help or not arg[1] then show_usage([[adduser JID]], [[Create the specified user account in Prosody]]); return 1; end @@ -153,7 +160,8 @@ end function commands.passwd(arg) - if not arg[1] or arg[1] == "--help" then + local opts = parse_args(arg, only_help); + if opts.help or not arg[1] then show_usage([[passwd JID]], [[Set the password for the specified user account in Prosody]]); return 1; end @@ -192,7 +200,8 @@ end function commands.deluser(arg) - if not arg[1] or arg[1] == "--help" then + local opts = parse_args(arg, only_help); + if opts.help or not arg[1] then show_usage([[deluser JID]], [[Permanently remove the specified user account from Prosody]]); return 1; end @@ -250,7 +259,8 @@ end function commands.start(arg) - if arg[1] == "--help" then + local opts = parse_args(arg, only_help); + if opts.help then show_usage([[start]], [[Start Prosody]]); return 1; end @@ -314,7 +324,8 @@ end function commands.status(arg) - if arg[1] == "--help" then + local opts = parse_args(arg, only_help); + if opts.help then show_usage([[status]], [[Reports the running status of Prosody]]); return 1; end @@ -348,7 +359,8 @@ end function commands.stop(arg) - if arg[1] == "--help" then + local opts = parse_args(arg, only_help); + if opts.help then show_usage([[stop]], [[Stop a running Prosody server]]); return 1; end @@ -385,7 +397,8 @@ end function commands.restart(arg) - if arg[1] == "--help" then + local opts = parse_args(arg, only_help); + if opts.help then show_usage([[restart]], [[Restart a running Prosody server]]); return 1; end @@ -397,7 +410,8 @@ end function commands.about(arg) - if arg[1] == "--help" then + local opts = parse_args(arg, only_help); + if opts.help then show_usage([[about]], [[Show information about this Prosody installation]]); return 1; end @@ -518,7 +532,8 @@ end function commands.reload(arg) - if arg[1] == "--help" then + local opts = parse_args(arg, only_help); + if opts.help then show_usage([[reload]], [[Reload Prosody's configuration and re-open log files]]); return 1; end