<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://hg.omfa.de/prosody-hg/</link>
    <language>en-us</language>

    <title>prosody-hg: prosodyctl history</title>
    <description>prosodyctl revision history</description>
    <item>
    <title>prosodyctl: Remove unused variable [luacheck]</title>
    <link>http://hg.omfa.de/prosody-hg/log/7c9fd032c788/prosodyctl</link>
    <description><![CDATA[prosodyctl: Remove unused variable [luacheck]]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 13 Feb 2026 20:32:54 +0100</pubDate>
</item>
<item>
    <title>util.time: Import sleep from luasocket</title>
    <link>http://hg.omfa.de/prosody-hg/log/973609bad40a/prosodyctl</link>
    <description><![CDATA[util.time: Import sleep from luasocket<br/>
<br/>
We might not want to use the full LuaSocket for such a tiny function which will<br/>
never change.<br/>
<br/>
This drops win32 support but that should be fine.]]></description>
    <author>&#76;&#105;&#110;&#107;&#32;&#77;&#97;&#117;&#118;&#101;&#32;&#60;&#108;&#105;&#110;&#107;&#109;&#97;&#117;&#118;&#101;&#64;&#108;&#105;&#110;&#107;&#109;&#97;&#117;&#118;&#101;&#46;&#102;&#114;&#62;</author>
    <pubDate>Fri, 30 Jan 2026 14:08:53 +0100</pubDate>
</item>
<item>
    <title>Merge 13.0-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/af28d6debaca/prosodyctl</link>
    <description><![CDATA[Merge 13.0-&gt;trunk]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 09 Feb 2026 18:38:35 +0100</pubDate>
</item>
<item>
    <title>prosody, prosodyctl: Always search installation directory first</title>
    <link>http://hg.omfa.de/prosody-hg/log/2462247ec377/prosodyctl</link>
    <description><![CDATA[prosody, prosodyctl: Always search installation directory first<br/>
<br/>
Should solve for:<br/>
- Running from a source directory like looks for ./{core,net,util}/*.lua first<br/>
- `make install &amp;&amp; prosody` looks for $prefix/prosody/{core,net,util}/*.lua first<br/>
- Installation with luarocks or dh-lua into Lua search paths does not<br/>
	look for resources in the working directory.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 09 Feb 2026 18:30:57 +0100</pubDate>
</item>
<item>
    <title>Merge 13.0-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/6ccc6e0ece29/prosodyctl</link>
    <description><![CDATA[Merge 13.0-&gt;trunk]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 09 Feb 2026 17:11:52 +0100</pubDate>
</item>
<item>
    <title>prosody, prosodyctl: Load loader directly from source directory</title>
    <link>http://hg.omfa.de/prosody-hg/log/b085d32af140/prosodyctl</link>
    <description><![CDATA[prosody, prosodyctl: Load loader directly from source directory<br/>
<br/>
This should ensure that loader.lua is loaded from the source directory<br/>
and does the right thing when installed with `make install`<br/>
<br/>
There are currently three ways Prosody can be run:<br/>
<br/>
- Directly from the source directory, like `./prosody`<br/>
- Installed with `make install`<br/>
- Installed into Lua paths with e.g. dh-lua or luarocks<br/>
<br/>
In the first two cases, Lua search paths need to include the source<br/>
directory and ensure that `require &quot;prosody.util.json&quot;` ends up loading<br/>
`util/json.lua` relative to the installation (CFG_SOURCEDIR) or the<br/>
source checkout.<br/>
<br/>
Finally, in the last case where Prosody resources are installed under the<br/>
'prosody.*' namespace in regular Lua search paths, then loader.lua should<br/>
activate the compatibility mode that makes sure that both<br/>
`require&quot;util.json&quot;` and `require&quot;prosody.util.json&quot;` both resolve to<br/>
`(one path from of package.path)/prosody/util/json.lua`]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 09 Feb 2026 16:59:42 +0100</pubDate>
</item>
<item>
    <title>loader: Revert bad idea</title>
    <link>http://hg.omfa.de/prosody-hg/log/50b8d732c905/prosodyctl</link>
    <description><![CDATA[loader: Revert bad idea<br/>
<br/>
Reverts 76ece4dd9782]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 09 Feb 2026 15:54:02 +0100</pubDate>
</item>
<item>
    <title>loader: Move all path setup here from all executables</title>
    <link>http://hg.omfa.de/prosody-hg/log/76ece4dd9782/prosodyctl</link>
    <description><![CDATA[loader: Move all path setup here from all executables<br/>
<br/>
So it is done in the same way for all the executables, with less code<br/>
duplication.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 09 Feb 2026 01:57:40 +0100</pubDate>
</item>
<item>
    <title>Merge 13.0-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/f20b3f0d892b/prosodyctl</link>
    <description><![CDATA[Merge 13.0-&gt;trunk]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 07 Feb 2026 19:12:27 +0100</pubDate>
</item>
<item>
    <title>prosody: Fix loading local code when also installed system-wide</title>
    <link>http://hg.omfa.de/prosody-hg/log/312542dd184d/prosodyctl</link>
    <description><![CDATA[prosody: Fix loading local code when also installed system-wide<br/>
<br/>
loader.lua is responsible for adjusting the Lua module loading behavior<br/>
to account for legacy code (mostly community modules) that don't load<br/>
resources with the 'prosody' namespace prefix, like<br/>
`require&quot;prosody.util.json&quot;` rather than `require&quot;util.json&quot;`, as well<br/>
as the opposite problem of finding resources with the namespace prefix<br/>
in a local source directory, where Lua would look for<br/>
`./prosody/util/json.lua` instead of `./util/json.lua`.<br/>
<br/>
Which of these two behaviors is active depends on whether the loader is<br/>
loaded as `require&quot;prosody.loader&quot;` or `require&quot;loader&quot;`, the former<br/>
being intended for system-wide installations and the later for running<br/>
from source.<br/>
<br/>
When you have a system-wide Prosody installed to the standard Lua search<br/>
paths, the first attempt to require &quot;prosody.loader&quot; would succeed,<br/>
leading to system-wide resources being preferred.<br/>
<br/>
This makes it difficult to run Prosody from source, e.g. a different<br/>
version or with local patches, as those changes would be ignored.<br/>
<br/>
This change should make it more likely that the loader is invoked as<br/>
just &quot;loader&quot; instead of &quot;prosody.loader&quot;, which determines]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 01 Feb 2026 15:22:53 +0100</pubDate>
</item>
<item>
    <title>prosody: Move function only used once into block where it is used</title>
    <link>http://hg.omfa.de/prosody-hg/log/5b4efb5b798a/prosodyctl</link>
    <description><![CDATA[prosody: Move function only used once into block where it is used<br/>
<br/>
So it is not even instantiated when not used, for whatever tiny<br/>
performance gain]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 01 Feb 2026 15:21:40 +0100</pubDate>
</item>
<item>
    <title>prosody: Abort earlier on incompatible Lua version</title>
    <link>http://hg.omfa.de/prosody-hg/log/f47b4baa7934/prosodyctl</link>
    <description><![CDATA[prosody: Abort earlier on incompatible Lua version<br/>
<br/>
In order to minimize the amount of code we run before we bail out, as<br/>
well as to prepare for rearranging loader and search paths.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 01 Feb 2026 15:18:14 +0100</pubDate>
</item>
<item>
    <title>various: Do not mutate loop variables as they are treated as const in Lua 5.5</title>
    <link>http://hg.omfa.de/prosody-hg/log/a4c47203a9eb/prosodyctl</link>
    <description><![CDATA[various: Do not mutate loop variables as they are treated as const in Lua 5.5<br/>
<br/>
Loop variables are treated as &lt;const&gt; in Lua 5.5 and can't be modified<br/>
without declaring another local.<br/>
<br/>
Ref https://github.com/lua/lua/commit/b2f7b3b79f3117885b265575f6c5dbf934757797]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 23 Feb 2024 18:44:13 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Fix spacing in warning message</title>
    <link>http://hg.omfa.de/prosody-hg/log/883d9d0ccd64/prosodyctl</link>
    <description><![CDATA[prosodyctl: Fix spacing in warning message]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 01 Apr 2025 14:38:37 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Fix check for whether to show init system warning</title>
    <link>http://hg.omfa.de/prosody-hg/log/e0bbf85edc21/prosodyctl</link>
    <description><![CDATA[prosodyctl: Fix check for whether to show init system warning<br/>
<br/>
Overlooked from testing.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 06 Feb 2025 15:43:23 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: Further deprecate start/stop/restart commands when installed</title>
    <link>http://hg.omfa.de/prosody-hg/log/b9d369f77121/prosodyctl</link>
    <description><![CDATA[prosodyctl: Further deprecate start/stop/restart commands when installed<br/>
<br/>
Despite the warning we introduced, many people continue to try using<br/>
prosodyctl to manage Prosody in the presence of systemctl (e.g. #1688).<br/>
<br/>
Also, despite the warning, prosodyctl proceeded with the operation. This means<br/>
the commands could be invoked by accident, and cause a situation that is hard<br/>
to recover from (needing to manually track down stray processes).<br/>
<br/>
This commit disables all the problematic commands by default, but this can<br/>
still be overridden using --force or via a config option.<br/>
<br/>
We only perform this check when we believe Prosody has been &quot;installed&quot; for<br/>
system-wide use (i.e. running it from a source directory is still supported).]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 06 Feb 2025 14:51:31 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: reload: Assume reload-via-socket if any arguments passed</title>
    <link>http://hg.omfa.de/prosody-hg/log/9a66b53a5076/prosodyctl</link>
    <description><![CDATA[prosodyctl: reload: Assume reload-via-socket if any arguments passed]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 06 Feb 2025 14:47:45 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: Fix luacheck warning</title>
    <link>http://hg.omfa.de/prosody-hg/log/d2969e163656/prosodyctl</link>
    <description><![CDATA[prosodyctl: Fix luacheck warning]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 06 Feb 2025 14:46:36 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: reload: Remove redundant require</title>
    <link>http://hg.omfa.de/prosody-hg/log/0b37ce3e40cd/prosodyctl</link>
    <description><![CDATA[prosodyctl: reload: Remove redundant require]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 06 Feb 2025 14:45:56 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: stop: Fix detection of whether Prosody is running</title>
    <link>http://hg.omfa.de/prosody-hg/log/4e7ac0e8dfc4/prosodyctl</link>
    <description><![CDATA[prosodyctl: stop: Fix detection of whether Prosody is running]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 06 Feb 2025 14:35:29 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: reload: Fix detection of whether prosody is running</title>
    <link>http://hg.omfa.de/prosody-hg/log/7f6f0e47624a/prosodyctl</link>
    <description><![CDATA[prosodyctl: reload: Fix detection of whether prosody is running<br/>
<br/>
isrunning() returns two values (success, status) and we were only checking the<br/>
first one.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 06 Feb 2025 14:34:47 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: reload: use admin socket to issue reload command, if available</title>
    <link>http://hg.omfa.de/prosody-hg/log/263ae995bc86/prosodyctl</link>
    <description><![CDATA[prosodyctl: reload: use admin socket to issue reload command, if available]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 06 Feb 2025 14:24:16 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: Hide the 'lua_paths' command from default command listing</title>
    <link>http://hg.omfa.de/prosody-hg/log/8617f5962e47/prosodyctl</link>
    <description><![CDATA[prosodyctl: Hide the 'lua_paths' command from default command listing<br/>
<br/>
All commands are called with a '-h' argument, but this one doesn't have<br/>
that. Since it's meant to be machine readable, hiding it seems<br/>
marginally more sensible than implementing '-h'.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 08 Jan 2025 22:46:21 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Add lua_paths command to print the LUA_PATH and LUA_CPATH used</title>
    <link>http://hg.omfa.de/prosody-hg/log/ff0f4d1f16c8/prosodyctl</link>
    <description><![CDATA[prosodyctl: Add lua_paths command to print the LUA_PATH and LUA_CPATH used<br/>
<br/>
This can be useful to run scripts and stuff with access to the same Lua paths<br/>
as Prosody uses.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Wed, 08 Jan 2025 20:37:35 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: 'about' becomes 'version -v', 'version' prints only version</title>
    <link>http://hg.omfa.de/prosody-hg/log/c0b6b6a12228/prosodyctl</link>
    <description><![CDATA[prosodyctl: 'about' becomes 'version -v', 'version' prints only version<br/>
<br/>
The 'about' command remains for backwards compatibility, but hidden.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Wed, 08 Jan 2025 20:35:05 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: Remove unused import</title>
    <link>http://hg.omfa.de/prosody-hg/log/6127b51803bb/prosodyctl</link>
    <description><![CDATA[prosodyctl: Remove unused import<br/>
<br/>
Leftover after 854df134274f]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 08 Jan 2025 08:52:50 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: deluser: Use user:delete() shell command for implementation</title>
    <link>http://hg.omfa.de/prosody-hg/log/854df134274f/prosodyctl</link>
    <description><![CDATA[prosodyctl: deluser: Use user:delete() shell command for implementation]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 07 Jan 2025 19:28:06 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: passwd: Use user:password() shell command for implementation</title>
    <link>http://hg.omfa.de/prosody-hg/log/54803fb5b4d4/prosodyctl</link>
    <description><![CDATA[prosodyctl: passwd: Use user:password() shell command for implementation]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 07 Jan 2025 19:25:35 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: adduser: use shell user:create() to provide the implementation</title>
    <link>http://hg.omfa.de/prosody-hg/log/6fafe51df188/prosodyctl</link>
    <description><![CDATA[prosodyctl: adduser: use shell user:create() to provide the implementation<br/>
<br/>
This allows user creation to happen inside the running Prosody process, which<br/>
improves a number of things - such as executing event handlers for user<br/>
creation, fixing issues and race conditions with some storage drivers, etc.<br/>
<br/>
The intent is to do the same for the other prosodyctl commands, but this is<br/>
the first proof of concept for the approach.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 07 Jan 2025 18:47:24 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: Add experimental way to reload specific modules directly</title>
    <link>http://hg.omfa.de/prosody-hg/log/6226f75f55a7/prosodyctl</link>
    <description><![CDATA[prosodyctl: Add experimental way to reload specific modules directly<br/>
<br/>
Mostly thinking out loud about how various actions may use the shell<br/>
<br/>
This enables the following sequence of commands:<br/>
<br/>
	prosodyctl install mod_example<br/>
	prosodyctl reload mod_example<br/>
<br/>
which is simpler than<br/>
<br/>
	prosodyctl shell module reload example]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 25 Jun 2023 17:34:13 +0200</pubDate>
</item>
<item>
    <title>Merge 0.12-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/a47bd6ea7626/prosodyctl</link>
    <description><![CDATA[Merge 0.12-&gt;trunk]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Fri, 07 Apr 2023 16:00:23 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Fix using variable content in a format string</title>
    <link>http://hg.omfa.de/prosody-hg/log/20b1526772d2/prosodyctl</link>
    <description><![CDATA[prosodyctl: Fix using variable content in a format string<br/>
<br/>
This broke if the error message contained a format specified such as '%s'.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Fri, 07 Apr 2023 15:54:59 +0100</pubDate>
</item>
<item>
    <title>executables: Prefix module imports with prosody namespace</title>
    <link>http://hg.omfa.de/prosody-hg/log/7214baed9e9d/prosodyctl</link>
    <description><![CDATA[executables: Prefix module imports with prosody namespace]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 17 Mar 2023 16:29:54 +0100</pubDate>
</item>
<item>
    <title>executables: Invoke loader to allow mixing of old and new import style</title>
    <link>http://hg.omfa.de/prosody-hg/log/4f2accd99373/prosodyctl</link>
    <description><![CDATA[executables: Invoke loader to allow mixing of old and new import style<br/>
<br/>
Now both require&quot;util.foo&quot; and require&quot;prosody.util.foo&quot; should be<br/>
equivalent.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 17 Mar 2023 16:29:07 +0100</pubDate>
</item>
<item>
    <title>Merge 0.12-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/9f9633364044/prosodyctl</link>
    <description><![CDATA[Merge 0.12-&gt;trunk]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 22 Jan 2023 15:43:44 +0100</pubDate>
</item>
<item>
    <title>util.startup: Close state on exit to ensure GC finalizers are called</title>
    <link>http://hg.omfa.de/prosody-hg/log/891edd1ebde6/prosodyctl</link>
    <description><![CDATA[util.startup: Close state on exit to ensure GC finalizers are called<br/>
<br/>
Ensures a last round of garbage collection and that finalizers are<br/>
called. Fixes things like proper closing of SQLite3 state.<br/>
<br/>
There are more calls to os.exit() but most of them exit with an error or<br/>
in a case where a final GC sweep might not matter as much.<br/>
<br/>
It would be nice if this was the default.<br/>
<br/>
Calling util.statup.exit() everywhere may be sensible, but would be more<br/>
involved, requiring imports everywhere.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 22 Jan 2023 14:45:47 +0100</pubDate>
</item>
<item>
    <title>compat: Remove handling of Lua 5.1 location of 'unpack' function</title>
    <link>http://hg.omfa.de/prosody-hg/log/39ae08180c81/prosodyctl</link>
    <description><![CDATA[compat: Remove handling of Lua 5.1 location of 'unpack' function]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 11 Jul 2022 19:07:38 +0200</pubDate>
</item>
<item>
    <title>executables: Reject Lua 5.1 early</title>
    <link>http://hg.omfa.de/prosody-hg/log/10bb58ad5583/prosodyctl</link>
    <description><![CDATA[executables: Reject Lua 5.1 early<br/>
<br/>
Prevents attempting to load libraries that may no longer be found and<br/>
crashing with a traceback.<br/>
<br/>
Platforms like Debian where multiple Lua versions can be installed at<br/>
the same time and 'lua' pointing to one of the installed interpreters<br/>
via symlinks, there's the possibility that prosody/prosodyctl may be<br/>
invoked with Lua 5.1, which will no longer have any of the rest of<br/>
Prosody libraries available to be require(), and thus would immediately<br/>
fail with an unfriendly traceback.<br/>
<br/>
Checking and aborting early with a friendlier message and reference to<br/>
more information is better.<br/>
<br/>
Part of #1600]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 02 Jul 2022 17:27:39 +0200</pubDate>
</item>
<item>
    <title>prosodyctl: Pass server when listing (outdated) plugins (fix #1738)</title>
    <link>http://hg.omfa.de/prosody-hg/log/c475a7802169/prosodyctl</link>
    <description><![CDATA[prosodyctl: Pass server when listing (outdated) plugins (fix #1738)<br/>
<br/>
Needed since it checks the manifest of the repository and most likely<br/>
defaults to luarocks.org unless specified]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 05 Apr 2022 14:27:37 +0200</pubDate>
</item>
<item>
    <title>prosodyctl about: Report version of lua-readline</title>
    <link>http://hg.omfa.de/prosody-hg/log/1ee72c0013f3/prosodyctl</link>
    <description><![CDATA[prosodyctl about: Report version of lua-readline<br/>
<br/>
Good to know since it affects how well the shell works]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 27 Mar 2022 14:05:56 +0200</pubDate>
</item>
<item>
    <title>prosodyctl: Restore 'list --outdated'</title>
    <link>http://hg.omfa.de/prosody-hg/log/7fe5cd8a10e2/prosodyctl</link>
    <description><![CDATA[prosodyctl: Restore 'list --outdated'<br/>
<br/>
Parsing --flags puts it into 'opts', so --outdated wasn't passed to<br/>
luarocks, breaking that functionality]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 17 Feb 2022 01:39:35 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Allow passing server on command line with --server</title>
    <link>http://hg.omfa.de/prosody-hg/log/a52a0680fcd8/prosodyctl</link>
    <description><![CDATA[prosodyctl: Allow passing server on command line with --server<br/>
<br/>
Because why not I guess. This mirrors the corresponding luarocks command]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 04 Feb 2022 19:04:32 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Allow install plugin via explicit path or URL</title>
    <link>http://hg.omfa.de/prosody-hg/log/24b0c4c4e28a/prosodyctl</link>
    <description><![CDATA[prosodyctl: Allow install plugin via explicit path or URL<br/>
<br/>
This way you don't need to set the server URL in the config to use this,<br/>
you could just ^C^V an install line from a web page that says<br/>
<br/>
	prosodyctl install https://modules.example.com/mod_example.src.rock<br/>
<br/>
Drop the help message in this case since it'll be all messed up by being<br/>
given an URL or rock filename.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 04 Feb 2022 19:03:02 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Return success status code from --help</title>
    <link>http://hg.omfa.de/prosody-hg/log/47d5233a1fc7/prosodyctl</link>
    <description><![CDATA[prosodyctl: Return success status code from --help<br/>
<br/>
Only when the help is shown because of invalid arguments should a<br/>
non-zero status code be returned to indicate a problem.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 04 Feb 2022 19:01:34 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Use argument parsing library to parse --help, -h, -?</title>
    <link>http://hg.omfa.de/prosody-hg/log/ba712f7559dc/prosodyctl</link>
    <description><![CDATA[prosodyctl: Use argument parsing library to parse --help, -h, -?<br/>
<br/>
Reads nicer, but adds more code. Can always be reverted later I suppose.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 04 Feb 2022 18:56:01 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Hide process management commands when init system should be used instead</title>
    <link>http://hg.omfa.de/prosody-hg/log/fc297128c33a/prosodyctl</link>
    <description><![CDATA[prosodyctl: Hide process management commands when init system should be used instead]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 21 Dec 2021 14:23:09 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Reorder help sections</title>
    <link>http://hg.omfa.de/prosody-hg/log/949c2b52f51e/prosodyctl</link>
    <description><![CDATA[prosodyctl: Reorder help sections<br/>
<br/>
By how old the commands are?<br/>
Or how disruptive the changes are?<br/>
Or just by what feels best?]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 21 Dec 2021 13:11:41 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Fix weird indentation</title>
    <link>http://hg.omfa.de/prosody-hg/log/248477e45c64/prosodyctl</link>
    <description><![CDATA[prosodyctl: Fix weird indentation]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 06 Nov 2021 18:45:44 +0100</pubDate>
</item>
<item>
    <title>Merge 0.11-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/42e98179c034/prosodyctl</link>
    <description><![CDATA[Merge 0.11-&gt;trunk]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 20 Sep 2021 15:51:43 +0200</pubDate>
</item>
<item>
    <title>prosodyctl: Fix later import of LuaFileSystem</title>
    <link>http://hg.omfa.de/prosody-hg/log/49cfd3628d9d/prosodyctl</link>
    <description><![CDATA[prosodyctl: Fix later import of LuaFileSystem<br/>
<br/>
lfs or WHAT<br/>
<br/>
How did this even happen?]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 11 Sep 2021 22:26:50 +0200</pubDate>
</item>
<item>
    <title>prosodyctl: Add a note about checking the order of listed commands</title>
    <link>http://hg.omfa.de/prosody-hg/log/7c03b1f4c388/prosodyctl</link>
    <description><![CDATA[prosodyctl: Add a note about checking the order of listed commands<br/>
<br/>
Should Plugin really be first? What order makes the most sense?]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 15 Jul 2021 00:38:27 +0200</pubDate>
</item>
<item>
    <title>prosodyctl: Add cert to command listing</title>
    <link>http://hg.omfa.de/prosody-hg/log/d1e7f5b2f524/prosodyctl</link>
    <description><![CDATA[prosodyctl: Add cert to command listing<br/>
<br/>
This hides a whole bunch of subcommands tho, maybe those should be<br/>
explicitly listed?]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 15 Jul 2021 00:37:47 +0200</pubDate>
</item>
<item>
    <title>prosodyctl: Add 'shell' to command listing</title>
    <link>http://hg.omfa.de/prosody-hg/log/a6c18f434d7b/prosodyctl</link>
    <description><![CDATA[prosodyctl: Add 'shell' to command listing]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 15 Jul 2021 00:35:57 +0200</pubDate>
</item>
<item>
    <title>prosodyctl: Add 'check' to command listing (fixes #1622)</title>
    <link>http://hg.omfa.de/prosody-hg/log/4e36a1e7222b/prosodyctl</link>
    <description><![CDATA[prosodyctl: Add 'check' to command listing (fixes #1622)<br/>
<br/>
Along with infrastructure for the other commands that live in external<br/>
modules.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 30 May 2021 12:27:12 +0200</pubDate>
</item>
<item>
    <title>Merge 0.11-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/ce7c52a6d650/prosodyctl</link>
    <description><![CDATA[Merge 0.11-&gt;trunk]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 27 May 2021 12:51:07 +0200</pubDate>
</item>
<item>
    <title>prosodyctl: Add 'limits' to known globals to warn about misplacing it</title>
    <link>http://hg.omfa.de/prosody-hg/log/35e880501efd/prosodyctl</link>
    <description><![CDATA[prosodyctl: Add 'limits' to known globals to warn about misplacing it<br/>
<br/>
It will do nothing in a VirtualHost section for example.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 27 May 2021 12:35:55 +0200</pubDate>
</item>
<item>
    <title>prosodyctl: Reorganize help / command list</title>
    <link>http://hg.omfa.de/prosody-hg/log/a3d48204ec95/prosodyctl</link>
    <description><![CDATA[prosodyctl: Reorganize help / command list]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 22 Jan 2021 00:11:39 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Report OpenSSL version</title>
    <link>http://hg.omfa.de/prosody-hg/log/0983653cbfdf/prosodyctl</link>
    <description><![CDATA[prosodyctl: Report OpenSSL version]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 12 May 2021 01:11:42 +0200</pubDate>
</item>
<item>
    <title>Merge 0.11-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/3bbb1af92514/prosodyctl</link>
    <description><![CDATA[Merge 0.11-&gt;trunk]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 13 May 2021 11:17:13 +0100</pubDate>
</item>
<item>
    <title>prosodyctl about: Report libexpat version if known</title>
    <link>http://hg.omfa.de/prosody-hg/log/d4b735272a61/prosodyctl</link>
    <description><![CDATA[prosodyctl about: Report libexpat version if known]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 11 May 2021 14:15:22 +0100</pubDate>
</item>

  </channel>
</rss>
