# HG changeset patch # User João Duarte # Date 1561054667 -3600 # Node ID ad640c2e072e27472bde5244d076326f1043875a # Parent 58fe5cff5ca2450e9b0156782798d049b5264712 prosodyctl: Implemented the 'list' command, which is a bridge to 'luarocks list' diff -r 58fe5cff5ca2 -r ad640c2e072e prosodyctl --- a/prosodyctl Fri Jun 07 13:09:01 2019 +0100 +++ b/prosodyctl Thu Jun 20 19:17:47 2019 +0100 @@ -85,6 +85,19 @@ local commands = {}; local command = table.remove(arg, 1); +function commands.list(arg) + -- Need to think about the case with many flags + local flag="--tree=" + -- I'm considering the flag is the first, but there can be many flags + if arg[1] and arg[1]:sub(1, #flag) == flag then + local dir = arg[1]:match("=(.+)$") + -- These extra double brackets allow us to correctly process names with spaces + os.execute("luarocks list --tree=".."'"..dir.."'") + else + os.execute("luarocks list --tree="..prosody.paths.data.."/rocks") + end +end + function commands.enabled_plugins() for module in modulemanager.get_modules_for_host() do show_warning("%s", module)